【问题标题】:Random JSON where x is truex 为真的随机 JSON
【发布时间】:2017-04-12 10:49:45
【问题描述】:

我有一个 JSON 文件 (https://api.myjson.com/bins/o7s1v),我想使用 javascript 来获取满足条件的随机对象,例如“egg-group-1”等于“monster”的随机对象。

我该怎么做呢?

【问题讨论】:

  • 你也可以分享你的代码吗?
  • 我该怎么做呢? 在列表上运行一个循环。在每次迭代中,匹配 where 子句的属性。如果匹配,则将其推送到另一个列表。不生成大于 0 且小于 newList.length 和 Ta-Da 的随机数!!!
  • 请将所有相关代码放入问题本身。记住,链接会失效。
  • 这将解决您的部分问题:google.co.in/…

标签: javascript jquery json


【解决方案1】:

如果你想找到第一个匹配,使用 find(),如果你想找到一个随机的,你可以使用 filter() 然后访问一个随机元素:

let arr = [{"id":1,"dex":1,"form":"null","mon":"Bulbasaur","type1":"Grass","type2":"Poison","egg-group-1":"Monster","egg-group-2":"Grass","legend":"FALSE","gen":1},{"id":2,"dex":2,"form":"null","mon":"Ivysaur","type1":"Grass","type2":"Poison","egg-group-1":"Monster","egg-group-2":"Grass","legend":"FALSE","gen":1}];

let first = arr.find(v => v['egg-group-1'] === 'Monster'); // will return the first one
console.log(first);

let random = arr.filter(v => v['egg-group-1'] === 'Monster');
console.log(random[Math.floor(Math.random()*random.length)]);

【讨论】:

  • 请让 OP 分享努力。有很多帖子展示了如何根据属性过滤对象数组
  • 所以这就是为什么你不赞成正确答案?去阅读帮助中心和有关您的不当行为的相关元帖子! @Rajesh
  • 关闭选项中有 close as duplicate 是有原因的。过滤数组是一个非常明显的查询,需要多次回答。您应该选择将其标记为重复而不是回答。 downvote 也不代表正确。它表示不正确或不需要。
  • 给我一个完全相同的副本,我会用 dupehammer 关闭 - 我没有找到。问题不仅仅是过滤,而是过滤和访问找到的随机元素。你显然没有真正理解@Rajesh
  • @Rajesh 由于我是一个整体的 JSON 新手,所以我搜索了回答我的问题的帖子,但你可能可以看出我在问题过滤中没有使用它是一个我不认为的术语应用于此上下文。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-28
  • 2023-03-29
  • 2016-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多