javascript - 在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,因为它指出 [] 是意外标记。这里发生了什么?
解决方案
使用Array#filter
andArray#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"));