javascript - 从数组数组中删除元素

标签 javascript arrays

我想删除一个元素,在本例中该元素是另一个数组中的一个数组

arr = [['a','b'],['c','d'],['e','f']];
tag = ['c','d'];

我想从 arr 中删除标签,为此我正在尝试这样做:

arr.splice(arr.indexOf(tag), 1);

但我不知道为什么它不起作用,我该怎么做?

最佳答案

它不起作用,因为 JavaScript 中的 [1, 2, 3] != [1, 2, 3] 。数组和对象的比较不是通过值来完成的。这也适用于 indexOf()

你需要告诉 javascript 你所说的相等是什么意思:

arr = [['a','b'],['c','d'],['e','f']];
tag = ['c','d'];

function array_equals(a, b){
    return a.length === b.length && a.every((item,idx) => item === b[idx])
}

console.log(arr.filter(item => !array_equals(item, tag)))
  

关于javascript - 从数组数组中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51004366/

相关文章:

php - 从 PHP 解析 JSON 时出现问题

java - 在整数数组中查找两个元素的和并返回两个元素的第一个匹配的索引,对某些有效,但对少数无效

c - 在C中打印一维数组

javascript - 清空文件内容的函数

javascript - 如何使用 Test::WWW::Selenium 将击键发送到 Firefox?

javascript - Ng-animate 在 AngularJS 中不起作用?

javascript - 如何使用 jquery/javascript 格式化时间

python - 寻找任意矩阵 n*n 的上/下三角形式 - python

python - 根据阈值拆分 numpy 数组的更快方法

java - 在 Java 中,为什么数组不能是类型变量的边界,但可以是通配符的边界?