如何从javascript中的对象中选择随机嵌套属性



以下是我目前拥有的:

let userTeams = ['Liverpool', 'Manchester City', 'Manchester United'];
let object = {
teams: {
'Liverpool': {
player: 
['Salah',
'Nunez']
},
'Manchester United': {
player:
['Ronaldo',
'Rashford']
},
'Manchester City': {
player: 
['Haaland',
'Foden']
},
},
};
let userTeam = userTeams[Math.floor(Math.random() * 3)];

我需要直接从对象中随机选择团队,而不是从userTeams数组中选择。

我该怎么做?

我猜OP的真正目的是在对象中获得一个随机的团队名称(密钥(和该团队的数据(值(。抽象地说,只需几个步骤:

以下是如何从数组中获取随机元素:

const randomElement = array => array[Math.floor(Math.random()*array.length)];

它可以用来从一个对象中获得一个随机密钥:

const randomKey = object => randomElement(Object.keys(object));

这可以用来获得一个随机键值对:

const randomKeyValue = object => {
const key = randomKey(object);
return { [key] : object[key] };
};

总之:

let object = {
teams: {
'Liverpool': {
player: 
['Salah',
'Nunez']
},
'Manchester United': {
player:
['Ronaldo',
'Rashford']
},
'Manchester City': {
player: 
['Haaland',
'Foden']
},
},
};
const randomElement = array => array[Math.floor(Math.random() * array.length)];
const randomKey = object => randomElement(Object.keys(object));
const randomKeyValue = object => {
const key = randomKey(object);
return {
[key]: object[key]
};
};
console.log(randomKeyValue(object.teams))

您可以在数组上使用随机,该数组是object.teams的键(或值(

let object = {
teams: {
'Liverpool': {
player: ['Salah',
'Nunez'
]
},
'Manchester United': {
player: ['Ronaldo',
'Rashford'
]
},
'Manchester City': {
player: ['Haaland',
'Foden'
]
},
},
};
var teams = Object.values(object.teams);
let userTeam = teams[Math.floor(Math.random() * teams.length)];
console.log(userTeam);

最新更新