javascript - 如果数组的数组中不存在数组,则推送数组

标签 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])) {
            arrayArr.push(tempArr[i]);
        } else {
            //other logic
        }

  } 

现在,我知道这个例子在现实世界中并没有真正意义,它只是为了说明我的担忧。我如何搜索一组数组以确保我不会创建重复项。

如有任何疑问,欢迎提问。

谢谢!

最佳答案

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

var arrayArr = [[1, 4]];

pushArray([1, 4]); // does not get added
pushArray([1, 3]); // gets added

console.log(arrayArr);

function isArrayInArray(arrayToSearch, arrayToFind) {
    for (let i = 0; i < arrayToSearch.length; i++) {
        if (arrayToSearch[i][0] === arrayToFind[0] && arrayToSearch[i][1] === arrayToFind[1]) {
            return true;
        }
    }

    return false;
}

function pushArray(array) {
    if (!isArrayInArray(arrayArr, array)) {
        arrayArr.push(array);
    }
}

关于javascript - 如果数组的数组中不存在数组,则推送数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43642507/

相关文章:

javascript - 覆盖 .bind 和 .apply 中的 `this`

javascript - 我们还需要脚本加载器吗?

php - 在具有 2 列的表中显示数组

algorithm - 将递归算法转换为迭代

JavaScript:四舍五入 100

javascript - 为什么这个对象似乎在不应该被访问的时候被访问了?

javascript - 在不干扰原始数组的情况下从数组中提取最后 n 个元素

arrays - 使数组对和相等的最少操作次数

python - 根据共性对字符串数组进行分类

javascript - 如何在 React 应用程序中包含纯 JavaScript?