Javascript 如果数组不';不存在于数组的数组中

Javascript 如果数组不';不存在于数组的数组中,javascript,arrays,algorithm,loops,Javascript,Arrays,Algorithm,Loops,我目前正在从事一个小型家庭项目,如果阵列阵列中还不存在所述阵列,我将尝试将一个阵列推入阵列阵列中 var arrayArr = [[1,4]]; function pushArr() { var tempArr = [1, 3]; var tempArr2 = [1, 4]; for(i = 0; i < arrayArr.length, i++) if(!arrayArr.indexOf(tempArr[i])) {

我目前正在从事一个小型家庭项目,如果阵列阵列中还不存在所述阵列,我将尝试将一个阵列推入阵列阵列中

var arrayArr = [[1,4]];

function pushArr() {

    var tempArr = [1, 3];
    var tempArr2 = [1, 4];

    for(i = 0; i < arrayArr.length, i++)
        if(!arrayArr.indexOf(tempArr[i])) {
            arrayArr.push(tempArr[i]);
        } else {
            //other logic
        }

  } 
var arrayArr=[[1,4]];
函数pushArr(){
var tempArr=[1,3];
var tempArr2=[1,4];
对于(i=0;i
现在,我知道这个例子在现实世界中没有意义,它只是为了说明我的担忧。如何搜索数组以确保不创建重复的数组

如果你有任何问题,请提问


谢谢

在我的解决方案中,在
isArrayInArray()
中,我循环遍历主数组
arrayArr
中的每个元素。然后比较每个给定数组的第一个和第二个元素是否匹配。如果是,那么数组已经被添加,因此它将返回true

var arrayArr=[[1,4]];
pushArray([1,4]);//不会被添加
pushArray([1,3]);//添加
控制台日志(arrayArr);
函数isArrayInArray(arrayToSearch,arrayToFind){
for(设i=0;i}
在我的解决方案中,在
isArrayInArray()
中,我循环遍历主数组
arrayArr
中的每个元素。然后比较每个给定数组的第一个和第二个元素是否匹配。如果是,那么数组已经被添加,因此它将返回true

var arrayArr=[[1,4]];
pushArray([1,4]);//不会被添加
pushArray([1,3]);//添加
控制台日志(arrayArr);
函数isArrayInArray(arrayToSearch,arrayToFind){
for(设i=0;i}
你知道[1,2]=[1,2]是假的


请参阅

您知道[1,2]==1,2]为假


请参考

,即使您有以下情况:

let a = [1,2];
let b = [1,2];
a
b
都包含对具有相同编号的数组的两个不同引用。他们不平等

设a=[1,2];
设b=[1,2];

console.log(a==b)即使您有以下内容:

let a = [1,2];
let b = [1,2];
a
b
都包含对具有相同编号的数组的两个不同引用。他们不平等

设a=[1,2];
设b=[1,2];

console.log(a==b)试图使答案尽可能简单。基本上,我们正在迭代
arrayArr
并检查输入数组的所有元素是否与任何元素数组的所有元素匹配。因此,它应该只是一个嵌套在
some
中的
every
。但是,如果我们只比较两个元素数组(数组到字符串的转换应该非常快),正如您在回答中所阐明的,那么我将使用字符串比较,如
pushArr1
中所示。这是您第一次尝试时的大致方向,因此我将其添加到了我的答案中

var arrayArr=[[1,3,5]];
var tempArr=[1,3,5];
var tempArr2=[1,4];
pushArr1(tempArr);
功能推送器(温度)
{
if(!arrayArr.some)(函数(e){
返回e.every(函数(e1,i)
{
返回e1==温度[i];
})
}))阵列推力(温度);
控制台日志(arrayArr);
}
功能pushArr1(温度)
{
如果(!arrayArr.some(函数(e){returne e.join(“,”===temp.join(“,”}))arrayArr.push(temp);
控制台日志(arrayArr);

}
试图让答案尽可能简单。基本上,我们正在迭代
arrayArr
并检查输入数组的所有元素是否与任何元素数组的所有元素匹配。因此,它应该只是一个嵌套在
some
中的
every
。但是,如果我们只比较两个元素数组(数组到字符串的转换应该非常快),正如您在回答中所阐明的,那么我将使用字符串比较,如
pushArr1
中所示。这是您第一次尝试时的大致方向,因此我将其添加到了我的答案中

var arrayArr=[[1,3,5]];
var tempArr=[1,3,5];
var tempArr2=[1,4];
pushArr1(tempArr);
功能推送器(温度)
{
if(!arrayArr.some)(函数(e){
返回e.every(函数(e1,i)
{
返回e1==温度[i];
})
}))阵列推力(温度);
控制台日志(arrayArr);
}
功能pushArr1(温度)
{
如果(!arrayArr.some(函数(e){returne e.join(“,”===temp.join(“,”}))arrayArr.push(temp);
控制台日志(arrayArr);

}
[1,4]
[4,1]
在你的情况下应该被视为平等吗?不,我不认为有必要,因为我有一个有限的数组来推动,它们总是具有相同的顺序。在你的代码中,你在条件方面有一个小错误。请包括
i
之后,而不是
漂亮的捕获,只是一个例子:)在你的情况下
[1,4]
[4,1]
应该被视为平等吗?不,我不认为这是必要的,因为我的数组有限,它们总是有相同的顺序。在代码中,在for条件中有一个小错误。请包括
i
之后,而不是
Nice catch只是一个例子:)这只测试每个数组的前两个元素是否为m