2012-03-19 57 views
0

我有這樣的一段代碼,當你看到它,它看來,邏輯應該運行如下:與JS數組掙扎長度

我創建3個空數組,我一個值添加到bankSelectedData,我打印出值,顯然bankSelectedData現在是1和bankSelectionArrayCurrent長度爲0,後來我說:

bankSelectionArrayPrevious = bankSelectionArrayCurrent; 

所以我轉向bankSelectionArrayPrevious到bankSelectionArrayCurrent。當我檢查bankSelectionArrayPrevious的大小是說'1'?這怎麼可能?

var bankSelectionArrayCurrent = new Array(); 
var bankSelectionArrayPrevious = new Array(); 
var bankSelectedData = new Array(); 
    bankSelectedData.push("value1"); 

alert("bankSelectionArrayCurrent length: "+bankSelectionArrayCurrent.length); 
alert("bankSelectedData length: "+bankSelectedData.length); 

if(bankSelectedData.length != bankSelectionArrayCurrent.length){ 
    bankSelectionArrayPrevious = bankSelectionArrayCurrent; 
    bankSelectionArrayCurrent.length = 0 

    alert("previousSize: "+bankSelectedData.length); 
    alert("currentSize: "+bankSelectionArrayCurrent.length); 
}​ 

感謝您的任何建議!

+0

啊我是個大白癡..謝謝你們..! – Tiwaz89 2012-03-19 13:06:13

回答

2

如果你有

alert("previousSize: "+bankSelectedData.length); 

也許你的意思是:

alert("previousSize: "+bankSelectionArrayPrevious.length); 
2

您的代碼永遠不會更改「bankSelectedData」,因此在添加第一個值後,其長度保持爲1。

您的代碼不包含任何調用「bankSelectionArrayPrevious」長度的alert()

2

提醒您錯誤的。它應該是:

alert("previousSize: "+bankSelectionArrayPrevious.length);