我想从JSON
对象中获得一个随机条目,它看起来像这样:
{
"one" : {
"1" : [a, b, c],
"2" : [d, e, f]
},
"two" : {
"3" : [g, h, i],
"4" : [j, k, l]
}
}
我该如何从一个数组中获取随机条目?
编辑:我想要一个来自数组(例如[a, b, c]
)的随机条目,而不是嵌套的 objects
答案 0 :(得分:1)
通常,您需要获取one
或two
对象,之后需要获取内部数组。最后,从数组中获取元素之一。万一您需要执行多次,可以考虑创建一个包含所有元素的数组并从中获取随机值。
let json = {
"one" : {
"1" : ["a", "b", "c"],
"2" : ["d", "e", "f"]
},
"two" : {
"3" : ["g", "h", "i"],
"4" : ["j", "k", "l"]
}
};
let nextRandomMax = function(max) {
return Math.floor((Math.random() * max));
}
let keys = Object.keys(json);
let randomItem = json[keys[nextRandomMax(keys.length)]];
// go further
let itemKeys = Object.keys(randomItem);
let randomTable = randomItem[itemKeys[nextRandomMax(itemKeys.length)]];
let randomElement = randomTable[nextRandomMax( randomTable.length)]
console.log(randomElement);
请参阅: