Javascript数组比较

Javascript数组比较,javascript,arrays,Javascript,Arrays,我在vmware orchestrator中有两个字符串数组,a和b 我想将a中的所有字符串(除了b中的字符串)推送到新的第三个数组c中。因此b是一个包含排除项的数组 我从这个网站上找到了一些我尝试过的代码,但并没有达到预期的效果 var c = new Array(); if (b.length == 0) { var c = a } else for (i = 0; i < a.length; i++) { for (j = 0; j < b.leng

我在vmware orchestrator中有两个字符串数组,a和b

我想将a中的所有字符串(除了b中的字符串)推送到新的第三个数组c中。因此b是一个包含排除项的数组

我从这个网站上找到了一些我尝试过的代码,但并没有达到预期的效果

var c = new Array();

if (b.length == 0) {
    var c = a
} else

    for (i = 0; i < a.length; i++) {
    for (j = 0; j < b.length; j++) {
        if (b[j] != a[i]) {

            c.push(a[i]);
        }
    }
}
var c=new Array();
如果(b.length==0){
var c=a
}否则
对于(i=0;i
在上面的例子中。如果b不包含任何内容,则继续执行并使ca一致

a包含三个值,Test、Test2和Test3

如果b包含测试,它将把除此之外的所有内容添加到c中。(c=Test2和Test3)


现在来谈谈问题。如果b包含Test和Test2,则它不会同时排除这两项,相反c将包含Test、Test2、Test3和Test3。在此阶段,我希望它只包含Test3。

首先,这是javascript。现在请参见下面的解决方案。不要盲目地推动元素。而是浏览整个阵列,以确保没有匹配项

var a = ["Test","Test2","Test3"];
var b = ["Test","Test2"];
var c = new Array();

if (b.length == 0) {
var c = a;
} else {

for (var i = 0; i < a.length; i++) {
    var count = 0;
    for (var j = 0; j < b.length; j++) {
        if (b[j] == a[i]) {
            count++; 
        }
    }
    if(count == 0) {
        c.push(a[i]);
    }
}
}
alert(c);
var a=[“Test”、“Test2”、“Test3”]; 变量b=[“测试”,“测试2”]; var c=新数组(); 如果(b.length==0){ var c=a; }否则{ 对于(变量i=0;i
首先,要比较字符串,请使用
equals()
方法,而不是“==”。可能重复的字符串可以使用
数组。equals()
,传递排序后的数组。您的代码是用JavaScript编写的。你可能想重新给它贴标签吗?买本书,视频课程。。。。当你学习基础知识时,这是正确的方法谢谢,但遗憾的是,它没有完全起作用。对于b中的两个值,它将a中的所有值都添加到c中,而对于上面的值,它不会将a中最后一个值的副本添加到c中。b中只有一个值或没有值,它可以正常工作。@Fredrik,我已经编辑了答案。这很好用。我在没有测试的情况下发布了上一篇文章。我的错。。