比较2个数组的相似性,并在控制台中显示差异

时间:2013-01-31 17:31:11

标签: javascript arrays nested-loops

$(function(){


var x = new Array("a", "b", "c", "d", "e");
var y = new Array("a", "b", "3", "d", "e");
var str = "";

for (var i = 0; i < x.length; i++) {
    for (var j = 0; j < y.length; j++) {
        if (x[i] == y[j]) {
            break;
        } else {
            //Check if reach the last element in the array 2
            //If yes, then display that element in array 1 b/c not in array 2

              if (y[j] == y.length - 1) {
                str += x[i];
            }
        }
    }
}

console.log(x[i]);



});

x [i]返回undefined,它应该实际显示在两个比较数组中找不到的不同值。我如何从x [i]中获取值?我做错了什么?

2 个答案:

答案 0 :(得分:4)

if (y[j] == y.length - 1)更改为if (j == y.length - 1),以便检查当前迭代器位置而不是y数组值。

并将console.log(x[i]);更改为console.log(str);,以便输出您在循环中设置的str变量

答案 1 :(得分:0)

我认为显示差异的变量是str而不是xx woudl仍然保存您最初定义的数组,因为它没有被更改。 x[i]返回未定义,因为i未在循环外定义。