0
$(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] 中获取值?我究竟做错了什么?

4

2 回答 2

4

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

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

于 2013-01-31T17:39:48.983 回答
0

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

于 2013-01-31T17:39:41.470 回答