Javascript 如何按属性筛选对象数组?
给定以下数组,其中包含对象数组:Javascript 如何按属性筛选对象数组?,javascript,d3.js,Javascript,D3.js,给定以下数组,其中包含对象数组: [ [ {color: blue, size: 3}, {color: red, size: 1}, {color: blue, size: 4} ], [ {color: blue, size: 4}, {color: green, size: 9}, {color: gren, size: 3} ] ] 我如何过滤数据,以便只剩下属性为蓝色的对象,如下所示: [ [ {color:
[
[
{color: blue, size: 3},
{color: red, size: 1},
{color: blue, size: 4}
],
[
{color: blue, size: 4},
{color: green, size: 9},
{color: gren, size: 3}
]
]
我如何过滤数据,以便只剩下属性为蓝色的对象,如下所示:
[
[
{color: blue, size: 3},
{color: blue, size: 4}
],
[
{color: blue, size: 4}
]
]
这是在D3js的上下文中,但这可能只是一个简单的JavaScript问题。您可以使用if-else语句对带有循环的蓝色进行迭代。您可以使用if-else语句对带有循环的蓝色进行迭代。这里有一种方法:
outputArray = inputArray.map(function(a) {
return a.filter(function(el) { return el.color === "blue"; });
});
.map()
方法创建一个新数组,其元素将是调用为原始数组中的每个元素提供的函数的结果。(如果要覆盖原始数组,只需将结果赋回同一变量,而不是新变量。)
.filter()
方法创建一个新数组,其中只包含通过测试的函数中原始数组中的元素
进一步阅读:
- 这里有一种方法:
outputArray = inputArray.map(function(a) {
return a.filter(function(el) { return el.color === "blue"; });
});
.map()
方法创建一个新数组,其元素将是调用为原始数组中的每个元素提供的函数的结果。(如果要覆盖原始数组,只需将结果赋回同一变量,而不是新变量。)
.filter()
方法创建一个新数组,其中只包含通过测试的函数中原始数组中的元素
进一步阅读: