不太清楚該如何解釋這個問題。數組中的未定義元素
當我做
function reverseArray(array) {
var arr = [];
for(i = 0; i <= array.length; i++)
arr.unshift(array[i]);
return arr;
}
然後用console.log(reverseArray(["A", "B", "C"]));
稱它爲我的輸出是:
[undefined, "C", "B", "A"]
但是,當我從array.length在減去1 for循環像這樣
function reverseArray(array) {
var arr = [];
for(i = 0; i <= array.length - 1; i++)
arr.unshift(array[i]);
return arr;
}
我得到了我所期望的, h是:["C", "B", "A"]
什麼給?
喊出觸發快樂downvoter!感謝您的反饋。 – sabaeus
有些人在海報似乎沒有對他或她的代碼進行基本調試的情況下降低了問題的質量。在這種特殊情況下,您真正需要做的就是逐步執行代碼並觀察它的執行情況。你會看到它做了額外的迭代,將undefined放到數組中,從而解決了你的問題,而不必費心去發佈到SO或讓別人看你的問題。在這種情況下,我自己通常不會低估,但我認爲這樣做不合理。學習如何使用調試器,並且您將能夠解決許多您自己的問題。 –
我發現這個錯誤,我只是不太明白*爲什麼數組索引從0運行到長度爲-1。這是我的愚蠢嗎?這似乎是違反直覺的,但那是因爲我只是忘了那條規則。 – sabaeus