Javascript 从数组数组中删除元素

Javascript 从数组数组中删除元素,javascript,arrays,Javascript,Arrays,我想删除一个元素,在本例中它是另一个数组中的数组 arr = [['a','b'],['c','d'],['e','f']]; tag = ['c','d']; 我想从arr中删除标记,为此,我尝试执行以下操作: arr.splice(arr.indexOf(tag), 1); 但我不知道它为什么不起作用,我怎么能这样做呢?它不起作用,因为[1,2,3]!=javascript中的[1,2,3]。数组和对象比较不是由值完成的。这也适用于indexOf 您需要告诉javascript您所说的平

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

arr = [['a','b'],['c','d'],['e','f']];
tag = ['c','d'];
我想从arr中删除标记,为此,我尝试执行以下操作:

arr.splice(arr.indexOf(tag), 1);
但我不知道它为什么不起作用,我怎么能这样做呢?

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

您需要告诉javascript您所说的平等是什么意思:

arr=['a','b',['c','d',['e','f']; 标记=['c','d']; 函数数组_equalsa,b{ 返回a.length==b.length&&a.everyitem,idx=>item==b[idx] } console.logarr.filteritem=>!数组\相等项,标记
您需要检查数组中的每一项,因为使用,您可以检查对象引用,即使使用相同的值,对象引用也不相同

假设相同长度的数组进行检查

变量arr=['a','b'],['c','d'],['e','f'], 标记=['c','d'], 结果=arr.filtera=>!a、 everyv,i=>v==tag[i];
console.logresult 您将需要使用双筒过滤器。第一个用于分离数组,第二个用于比较每个值并过滤掉标记元素

arr=['a','b',['c','d',['e','f']; 标记=['c','d'];
console.logarr.filterl=>el.filterc,i=>c!=标记[i]。长度!=0在lazyer替代方案中,如果没有任何值包含,则可以将数组转换为字符串并进行比较:

var arr=['a','b',['c','d',['e','f']],tag=['c','d'];
console.log arr.filtera=>a!=tag+这是一个过滤函数,用于从数字数组中删除数字5:

让winComb=[ [1, 2, 3], [4, 5, 6], [7, 8, 9], [1, 4, 7], [2, 5, 8], [3, 6, 9], [1, 5, 9], [3, 5, 7], ]; 对于let i=0;i