我有一个动态生成的多维数组,要从中删除特定值。

到目前为止,我有这段代码:

mainARR = [[1,2,3,4], [5,6,7,8]];
delARR = [1,2,3,4];

function removeByValue(array, value){
    return array.filter(function(elem, _index){
        return value != elem;
    });
}
mainARR = removeByValue(mainARR, delARR);

console.log(JSON.stringify(mainARR));


我不知道要删除的值的索引。相反,我知道实际值。该值是数组时,该代码不起作用。当我想删除值1时,它非常适合像[1,2,3,4]之类的简单数组。

任何帮助表示赞赏。

最佳答案

如果将elemvalue制成字符串,则您的代码可以正常工作。

function removeByValue(array, value) {
  return array.filter(function(elem, _index) {
    return value.toString() != elem.toString();
  });
}


下面的例子



mainARR = [
  [1, 2, 3, 4],
  [5, 6, 7, 8]
];
delARR = [1, 2, 3, 4];

function removeByValue(array, value) {
  return array.filter(function(elem, _index) {
    return value.toString() != elem.toString();
  });
}
mainARR = removeByValue(mainARR, delARR);

console.log(JSON.stringify(mainARR));

09-25 19:15