我有两个数组(arrayA&arrayB)。我想检查arrayB中是否已经存在所有arrayA中的项目。如果不是,我想将其添加到arrayB(但这不是问题)。在示例中,我只想console.log将项目添加到数组B中。

首先,我认为这是个好主意:

 for(var i = 0; i < arrayA.length; i++){
        for (var j = 0; j < arrayB.length; j++) {
            if(body[i].id == res[j].name){
                console.log("The article allready exsists")
            }
            else{
                console.log("Adding item to arrayB")
            }


      }

      }


然后我意识到这不是一个很好的方法,因为数组很大。同样,else语句将运行等于arrayA长度的次数。这也是一个问题,因为这将是第一次运行arrayB的数组长度为零,甚至不会达到else语句。

他们还有其他方法可以达到我在这里要做的事情吗?

最佳答案

也许这可能会有所帮助。您不需要嵌套循环即可实现此目的。

 var arrayA = [1,2,3,4,5,6];
 var arrayB = [2,4,7,8];
 for(var i = 0; i < arrayA.length; i++){
       if(arrayB.indexOf(arrayA[i]) > -1){
            console.log("The article allready exsists");
         }
         else{
             console.log("Adding item to arrayB")
         }
   }

10-08 08:57