Javascript JSON按值获取项目

Javascript JSON按值获取项目,javascript,json,key-value,Javascript,Json,Key Value,基于键值过滤JavaScript对象数组的最有效方法是什么 例如:我想在以下数组中按颜色选择项目: [{Id:1,颜色:“蓝色”},{Id:2,颜色:“绿色”},{Id:3,颜色:“蓝色”},{Id:4,颜色:“红色”}] 在CSS或xslt等语言中,有一种简单的语法可以按属性选择项,但我找不到JSON的等效语法。JSON不是一种语言。我想你指的是javascript。您必须自己编写,因为没有内置的方式。JSON不是一种语言。我想你指的是javascript。您必须自己编写,因为没有内置方式。您

基于键值过滤JavaScript对象数组的最有效方法是什么

例如:我想在以下数组中按颜色选择项目:

[{Id:1,颜色:“蓝色”},{Id:2,颜色:“绿色”},{Id:3,颜色:“蓝色”},{Id:4,颜色:“红色”}]


在CSS或xslt等语言中,有一种简单的语法可以按属性选择项,但我找不到JSON的等效语法。

JSON不是一种语言。我想你指的是javascript。您必须自己编写,因为没有内置的方式。

JSON不是一种语言。我想你指的是javascript。您必须自己编写,因为没有内置方式。

您无法直接过滤JSON字符串,至少可以轻松地过滤JSON字符串,而无需首先将其解析为JavaScript对象:

var collection = JSON.parse(jsonString);
但请注意,JSON解析器通常是严格的——对象键必须是strings():

之后,您可以在返回的
数组上使用:

var filtered = collection.filter(function (item) {
    return item.color === "blue";
});

console.log(filtered[0]); // [Object] :: { Id: 1, color: "blue" }

要支持较旧的浏览器,请包括for
JSON.parse
,以及MDN为
filter
提供的“兼容性”代码(或用于此类定义的集合)。

如果不首先将JSON字符串解析为JavaScript对象,则无法直接过滤JSON字符串,至少很容易:

var collection = JSON.parse(jsonString);
但请注意,JSON解析器通常是严格的——对象键必须是strings():

之后,您可以在返回的
数组上使用:

var filtered = collection.filter(function (item) {
    return item.color === "blue";
});

console.log(filtered[0]); // [Object] :: { Id: 1, color: "blue" }

要支持较旧的浏览器,请包括for
JSON.parse
以及MDN为
filter
提供的“兼容性”代码(或使用用于此类定义的集合)。

对不起,您所说的“MDN提供的兼容性代码”是什么意思?@Christophe Sorry。我指的是在下面列出的代码。对不起,你所说的“MDN提供的兼容代码”是什么意思?@Christophe抱歉。我所指的代码列在下面。