Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何按属性筛选对象数组?_Javascript_D3.js - Fatal编程技术网

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()
      方法创建一个新数组,其中只包含通过测试的函数中原始数组中的元素

      进一步阅读:

      您熟悉阵列上的方法吗?密切相关:您熟悉阵列上的方法吗?密切相关: