You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何遍历数组,返回前两个元素匹配指定值的子数组?

二维数组筛选正确实现方法

给定二维数组:

var arrays =  [
    [1, 2, 1],
    [1, 3, 4],
    [1, 2, 3],
    [0, 2, 2]
];

需要筛选出前两个元素分别为1和2的子数组,预期结果:

[
    [1, 2, 1],
    [1, 2, 3]
]

错误原因分析

你之前的嵌套循环返回错误结果,大概率是判断条件只校验了第二个元素为2,没同时校验第一个元素为1,导致[0,2,2]被误纳入结果。

正确实现方法

方法1:普通for循环

var result = [];
for (var i = 0; i < arrays.length; i++) {
  const subArr = arrays[i];
  // 必须同时满足两个条件:第一个元素是1,第二个是2
  if (subArr[0] === 1 && subArr[1] === 2) {
    result.push(subArr);
  }
}
console.log(result);

方法2:使用数组filter方法(更简洁)

ES5写法:

var result = arrays.filter(function(subArr) {
  return subArr[0] === 1 && subArr[1] === 2;
});
console.log(result);

ES6箭头函数简化版:

const result = arrays.filter(subArr => subArr[0] === 1 && subArr[1] === 2);
console.log(result);

两种方法都能得到符合预期的筛选结果。

内容的提问来源于stack exchange,提问作者Jake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 07:05:22