首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Javascript中的JSON帮助

Javascript中的JSON帮助
EN

Stack Overflow用户
提问于 2018-06-22 04:51:13
回答 2查看 46关注 0票数 -6

我有一个这样的Json

代码语言:javascript
复制
{
  "a" :[
      {
     "a1" : {
          "state" : "co"
            }
      },
     "b1" : {
          "state" : "ma"
      }
      ]
}

我想编写一个JS函数,它将随机选择a1或b1,并给出它的状态。谢谢!

代码语言:javascript
复制
      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
       }

这是我尝试过的一个粗略的逻辑

EN

回答 2

Stack Overflow用户

发布于 2018-06-22 05:12:28

首先,您的JSON无效。

一旦进行了更正,就可以检索数组,并使用Math.random()生成一个介于0和数组大小之间的随机索引。

然后从您的数组中获取随机项:

代码语言:javascript
复制
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]);

票数 2
EN

Stack Overflow用户

发布于 2018-06-22 05:13:08

下面是一个简单的实现:

代码语言:javascript
复制
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));

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50977244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档