首页 > 解决方案 > 在 JS 中过滤二维数组

问题描述

我有一个包含 x, y 坐标的简单二维数组,如下所示:

var c = [
        [1,10]
        [2,11]
        [3,12]
        [4,13]
        [5,15]
];

如何仅提取满足两个条件的对(一个用于 x,一个用于 y)并将它们放入自己的数组中?例如:

for Each of c { 
  if (x > 3 && y > 13) {
   push.NewArray
   }
}  

这里是 JS 的新手,在网上找不到这个。提前感谢您的帮助。

标签: javascriptarraysloopsfilter

解决方案


使用过滤器而不是推送,如下所示:

const filtered = c.filter(([x, y]) => x > 3 && y > 13);

var c = [
  [1, 10],
  [2, 11],
  [3, 12],
  [4, 13],
  [5, 15]
];
const filtered = c.filter(([x, y]) => x > 3 && y > 13);
console.log(filtered);

您也需要逗号来分隔数组项。

那里的解构相当于:

const filtered = c.filter((arr) => arr[0] > 3 && arr[1] > 13);

推荐阅读