0
這可能是一個相當愚蠢的問題,但我現在正在使用Javascript中的數組遇到麻煩。也就是說,這是爲什麼:使用JavaScript創建數組
這個var data = new Array(new Array('a', 'b', 'c'));
不等於:
var data2 = [['a', 'b', 'c']];
如果我比較這兩個數組,並打印出它說:false
結果。這是爲什麼?
alert(data2==data);
>false
和更混亂,如果我創建第三個數據陣列作爲數據2並將它命名爲DATA3,爲什麼它仍然返回false
當我比較兩者兼而有之?
var data3 = [['a', 'b', 'c']];
alert(data2==data3);
>false
我在這裏發生了什麼問題嗎?
您正在比較引用,而不是值。 – soktinpk 2014-11-24 17:29:38
每個新數組都是一個帶有自己引用的新對象。這就是爲什麼即使'[] == []'返回'false'。 – Kiril 2014-11-24 17:30:43
如果你想比較不同的數組內容,然後看看這個接受的答案; http://stackoverflow.com/questions/13142968/deep-comparison-of-objects-arrays – renatoargh 2014-11-24 17:31:38