$(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]中获取值?我做错了什么?
答案 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
而不是x
。 x
woudl仍然保存您最初定义的数组,因为它没有被更改。 x[i]
返回未定义,因为i
未在循环外定义。