我有一个这样的Json
{
"a" :[
{
"a1" : {
"state" : "co"
}
},
"b1" : {
"state" : "ma"
}
]
}
我想编写一个JS函数,它将随机选择a1或b1,并给出它的状态。谢谢!
data = require('../data.json')
it('should get random', function () {
random = this.getrandom(Object.keys(data))
console.log(Object.keys(productDataSet)[random].uri)
}
this.getrandom(keys)
{
len = keys.length
var randNum = getRandomArbitrary(0, len);
return randNum
}
这是我尝试过的一个粗略的逻辑
发布于 2018-06-22 05:12:28
首先,您的JSON无效。
一旦进行了更正,就可以检索数组,并使用Math.random()生成一个介于0和数组大小之间的随机索引。
然后从您的数组中获取随机项:
let jsonData = `{
"a": [{
"a1": {
"state": "co"
}
},
{
"b1": {
"state": "ma"
}
}
]
}`;
let yourObject = JSON.parse(jsonData);
let yourArray = yourObject.a;
function random(max) {
return Math.floor(Math.random() * max);
}
let randomIndex = random(yourArray.length);
console.log("Random value : ", yourArray[randomIndex]);
发布于 2018-06-22 05:13:08
下面是一个简单的实现:
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
function getRandomElement(arr) {
return arr[getRandomInt(0, arr.length - 1)]
}
var obj = {
"a": [{
"a1": {
"state": "co"
}
},
{
"b1": {
"state": "ma"
}
}
]
};
console.log(getRandomElement(obj.a));
https://stackoverflow.com/questions/50977244
复制相似问题