我想删除一个元素,在本例中该元素是另一个数组中的一个数组
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/