首页 > 解决方案 > 在javascript中过滤嵌套数组的问题

问题描述

尝试在 javascript 中过滤嵌套数组时收到错误消息。任务是构建一个函数,如果输入数组中包含特定元素,则过滤掉输入数组的任何子数组。

我目前的代码是:

function filteredArray(arr, elem) {

let newArr = [];

  newArr = [...arr];
  console.log(newArr);
  for (var i=0; i < newArr.length; i++) {
    newArr.filter(newArr[i] => newArr[i].indexOf(elem) >= 0);
  }
  return newArr;}

javascript 显然不喜欢我尝试根据子数组 newArr[i] 过滤 newArr,因为它指出 [] 是意外标记。这里发生了什么?

标签: javascriptfilter

解决方案


使用Array#filterandArray#includes 你可以很容易地过滤掉包含特定元素的数组:

const filteredArray = (array, elem) => array.filter(subArray => !subArray.includes(elem));

let testArr = [[1,2,3,4, "a"],[1,2,3,4,8],[1,2,3,4, "a"],[1,2,3,4,5]];

console.log(filteredArray(testArr, "a"));


推荐阅读