Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript对多个数组进行索引_Javascript - Fatal编程技术网

使用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)