javascript - 检查数组中的元素是否已在 Javascript 中连接成对

标签 javascript arrays iteration

我有一个我似乎无法解决的问题,也许你能帮上忙。

我有一个数组。例如。 ['@dog','@cat','@mouse']

我想遍历该数组中的每个值并将其连接到同一数组中的所有其他值(通过构建数据库查询)。

但是,因为我将在数据库中写入它,所以我需要避免重复。

因此,如果 @cat 已经连接到 @mouse,那么当我的 for 语句到达 @mouse 时 我希望它跳过添加连接到 @cat (还有 @dog 因为它已经在第一次迭代时连接到 @mouse.

我一直在尝试使用 for 循环,例如

for (var i=0; i<animals.length; i++) {
    for (var j = 0; j<animals.length; j++) {
        if (animals[i] !== animals[j]) {
            // adds connection between animals[i] and animals[j]
        }
    }
}

但是检查已经存在的对的最好方法是什么? (哪个元素是第一个,哪个是第二个无关紧要 - 例如,我的图形不是单向的)。

如果数组中的元素超过 4 个,这尤其会成为一个问题......

感谢您的帮助!

最佳答案

for (var i=0; i<animals.length; i++) {
    for (var j = 0; j<i; j++) {
        if (animals[i] !== animals[j]) {
            // adds connection between animals[i] and animals[j]
        }
    }
}

这样,数组的每个元素只与数组中它之前的元素进行比较。我认为这更接近你想要的。

关于javascript - 检查数组中的元素是否已在 Javascript 中连接成对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27510029/

相关文章:

c# - 如何在跳过某些值的同时遍历枚举类型?

javascript - 学习angularjs时的存储方法

javascript - jquery中使用列设置表的顺序

javascript - $(this) 不同于 $.each 循环上下文中的 'element' 参数

c++ - 数组 C++ 中的增量运算符

java - 为什么我的数组循环越界?

python - 通过迭代创建新的 df 列

javascript - 将 Ruby 变量传递给 javascript 以进行发布

javascript - 在 if 语句中访问数组

java - 如何迭代 Android Fragments