如果你不知道javascript中每个数组的长度,如何比较两个不同长度的数组?

ben*_*ham 6 javascript arrays for-loop

我被困在这里.我有两个数组,我不知道每个数组的长度,它们可以是相同的长度或没有,我不知道,但我需要创建一个新数组,其数字不常见于a(2, 10).

对于这种情况:

    var a = [2,4,10];
    var b = [1,4];

    var newArray = [];

    if(a.length >= b.length ){
        for(var i =0; i < a.length; i++){
            for(var j =0; j < b.length; j++){
                if(a[i] !=b [j]){
                    newArray.push(b);        
                }        
            }
        }
    }else{}  
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我的代码永远不会达到第一个条件,当b的长度超过a时,我不知道该怎么做.

Bud*_*nWA 10

如果我正确理解您的要求,您的代码中似乎存在逻辑错误.

此代码将把所有a不在其中的元素b放入newArray.

var a = [2, 4, 10];
var b = [1, 4];

var newArray = [];

for (var i = 0; i < a.length; i++) {
    // we want to know if a[i] is found in b
    var match = false; // we haven't found it yet
    for (var j = 0; j < b.length; j++) {
        if (a[i] == b[j]) {
            // we have found a[i] in b, so we can stop searching
            match = true;
            break;
        }
        // if we never find a[i] in b, the for loop will simply end,
        // and match will remain false
    }
    // add a[i] to newArray only if we didn't find a match.
    if (!match) {
        newArray.push(a[i]);
    }
}
Run Code Online (Sandbox Code Playgroud)

澄清,如果

a = [2, 4, 10];
b = [4, 3, 11, 12];
Run Code Online (Sandbox Code Playgroud)

然后newArray[2,10]