繁体   English   中英

JSON按值获取项目

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM