使用javascript对多个数组进行索引
我有一个这样的数组:使用javascript对多个数组进行索引,javascript,Javascript,我有一个这样的数组: var array = [ [1,2] , [2,2,2] , 3 , [3,4] ]; 所以我想用indexOf来拼接一个元素 例如: var index = array.indexOf( [2,2,2] ); array.splice(index, 1) 期望=> array = [ [1,2] , 3 , [3,4] ] 但问题是索引返回-1(假值)。。如何解决这个问题?问题是,有两个数组具有相同的基元,但数组不相等 比较工作与对象,而不是与内部的值 cons
var array = [ [1,2] , [2,2,2] , 3 , [3,4] ];
所以我想用indexOf来拼接一个元素
例如:
var index = array.indexOf( [2,2,2] );
array.splice(index, 1)
期望=>
array = [ [1,2] , 3 , [3,4] ]
但问题是索引返回-1(假值)。。如何解决这个问题?问题是,有两个数组具有相同的基元,但数组不相等 比较工作与对象,而不是与内部的值
console.log([2,2,2]=[2,2,2]);//假的
var数组=[2,2,2];
console.log(数组===数组);//true
问题是,有两个数组具有相同的基元,但数组不相等
比较工作与对象,而不是与内部的值
console.log([2,2,2]=[2,2,2]);//假的
var数组=[2,2,2];
console.log(数组===数组);//true
如果可以使用库,则可以使用公开拒绝
函数的lodash
库
以下是一个片段:
var数组=[[1,2],[2,2,2],3,3,4];
var result=u0.reject(数组[2,2,2]);
控制台日志(结果)代码>
如果可以使用库,则可以使用公开拒绝
函数的lodash
库
以下是一个片段:
var数组=[[1,2],[2,2,2],3,3,4];
var result=u0.reject(数组[2,2,2]);
控制台日志(结果)代码>
希望这有帮助
希望这有帮助 indexOf不起作用,因为它使用严格相等,所以除非您有一个要查找的数组的引用,否则无法在数组中找到数组
或者,您可以使用普通的旧ed 3 for循环并比较字符串化值:
var数组=[[1,2],[2,2,2],3,3,4];
函数findIndex(arr,value){
对于(var i=0,value=String(value),iLen=arr.length;iindexOf不起作用,因为它使用严格的相等性,所以除非您有对要查找的数组的引用,否则无法在数组中找到数组
或者,您可以使用普通的旧ed 3 for循环并比较字符串化值:
var数组=[[1,2],[2,2,2],3,3,4];
函数findIndex(arr,value){
对于(var i=0,value=String(value),iLen=arr.length;iI没有撤消您的代码,有一个简单的方法可以做到这一点?谢谢。但是什么是“a”?a
是一个变量,它是回调中数组的一个元素。我没有撤消您的代码,有一个简单的方法可以做到这一点?谢谢。但是“a”是什么?a
是一个变量,它是回调中数组的一个元素。使用严格相等,因此除非有对要作为索引的数组的引用,否则必须使用其他方法。使用严格相等,因此除非有对要作为索引的数组的引用,否则必须使用其他方法。根据“习惯”.删除它。ThxBy“习惯”。删除了它。Thxy您可以从这里获得有关findIndex的更多信息:您可以从这里获得有关findIndex的更多信息:我认为严格相等不是问题,因为它与对象引用相比较。@NinaScholz只是说明所使用的测试类型,这会导致该测试的条件或替代条件使用适当条件的测试。我不认为严格相等是一个问题,因为它比较对象引用。@NinaScholz只是说明所使用的测试类型,这会导致使用该测试的条件或使用适当条件的替代测试。
var array = [[1, 2], [2, 2, 2], 3, [3, 4]];
var index = array.findIndex(a => JSON.stringify(a) === "[2,2,2]");
alert(index);
if (index > -1) {
array.splice(index, 1);
}
alert(array)