[英]JSON Get Items by Value
基于键值筛选JavaScript对象数组的最有效方法是什么?
例如:我想按颜色在以下数组中选择项目:
[{Id:1,颜色:“蓝色”},{Id:2,颜色:“绿色”},{Id:3,颜色:“蓝色”},{Id:4,颜色:“红色”}]
在CSS或xslt等语言中,有一种简单的语法可以按属性选择项目,但我找不到与JSON等价的项目。
至少在没有首先将它们解析为JavaScript对象的情况下,您就无法直接过滤JSON字符串:
var collection = JSON.parse(jsonString);
但请注意,JSON解析器通常是严格的-对象键必须是字符串( http://json.org ):
[{ "Id": 1, "color": "blue" }, { "Id": 2, "color": "green" }, ...]
之后,您可以对返回的Array
使用filter
:
var filtered = collection.filter(function (item) {
return item.color === "blue";
});
console.log(filtered[0]); // [Object] :: { Id: 1, color: "blue" }
为了支持较旧的浏览器,请包括JSON2.js(用于JSON.parse
以及MDN提供的用于filter
的“兼容性”代码(或使用ES5-shim收集此类定义)。
JSON不是语言。 我认为您的意思是javascript。 而且您将不得不自己编写它,而没有内置的方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.