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]は未定義を返します。これは、比較された両方の配列にない異なる値を実際に表示するはずです。x [i]から値を取得するにはどうすればよいですか?私は何が間違っているのですか?

4

2 に答える 2

4

y 配列値ではなく、現在の反復子の位置をチェックするように変更if (y[j] == y.length - 1)します。if (j == y.length - 1)

そして、ループで設定した変数を出力するように変更console.log(x[i]);しますconsole.log(str);str

于 2013-01-31T17:39:48.983 に答える
0

str違いを表示する変数は ではないと思いますxxwoudl は、変更されていないため、最初に定義した配列を引き続き保持します。 はループ外で定義されていx[i]ないため、未定義を返しています。i

于 2013-01-31T17:39:41.470 に答える