Javascript 基于键值对选择json对象
这可能是一个noob问题,但我想知道是否有一种方法可以选择json对象而不必循环遍历键值对。我在e4x上也做过类似的事情,但我不确定如何在语法上为js做到这一点。比如说Javascript 基于键值对选择json对象,javascript,json,select,e4x,Javascript,Json,Select,E4x,这可能是一个noob问题,但我想知道是否有一种方法可以选择json对象而不必循环遍历键值对。我在e4x上也做过类似的事情,但我不确定如何在语法上为js做到这一点。比如说 var data = { "objects":[ {"foo":"x","bar":"a"}, {"foo":"y","bar":"b"} ]} 因此,与其使用for循环,不如使用某种方法来声明 var someObject =
var data = { "objects":[
{"foo":"x","bar":"a"},
{"foo":"y","bar":"b"}
]}
因此,与其使用for循环,不如使用某种方法来声明
var someObject = data.objects[where objects.foo == x]
您可以手动执行此操作,而不必对数据进行迭代,但有些代码无论如何都应该对对象进行迭代(因此,在相当大的对象上不需要闪电般的速度)
这方面有一个图书馆:这个问题是两年前提出的。jsonQ允许我们编写代码来查找兄弟节点、遍历树等,而无需在循环中编写一堆循环。虽然这个问题想在原生JS中找到它,但我认为我2岁的问题现在有点幼稚。我真的在寻找一个像jsonQ这样的库,以避免编写一堆难看的循环(尽管我可以自己完成这项工作) 我正在搜索,刚找到这个:。我还没有试过,但这似乎是一个不错的选择。这个问题已经很老了,但这个答案可能会对某人有所帮助 要从列表中选择项目,可以使用Javascript筛选功能:
var data = { "objects":[
{"foo":"x","bar":"a"},
{"foo":"y","bar":"b"}
]}
var someobject = filterObject('x');
function filterObject(fooValue) {
return data.objects.filter(function(item) {
return item.foo == fooValue;
}
}
这不是JSON,这是对象文字符号。你错了。JSON是对象文字表示法的一个子集,实际上要求值对中的标识符只能是字符串。我不喜欢依赖图书馆。不可能,嗯?我猜我在循环。那就自己写吧。没什么特别的。啊,您可以从这里获取
查找: