當您使用此結構:
for (var name in namesArray) {
的name
值是數組(屬性名)在索引中。如果你想在陣列中的實際值,你必須使用該屬性名稱/索引來獲取值:
document.write(namesArray[name]);
當然,你真的不應該遍歷數組擺在首位,因爲這樣它可以迭代數組對象的所有可枚舉屬性(可能包含非數組元素),如您在this example中所見。相反,你應該使用傳統的for
環路遵循此代碼示例:
var namesArray = [];
do {
var names = prompt("Enter a name: ");
namesArray.push(names);
} while (names != "")
namesArray.sort();
for (var i = 0; i < namesArray.length; i++) {
document.write(namesArray[i]);
}
其他選項遍歷數組:
namesArray.forEach(function(value) {
document.write(value)
});
或者,ES6,您可以使用for/of syntax它實際上工作如何你試圖用於/在:
for (let value of namesArray) {
document.write(value);
}
您也可能想了解在文檔已經被分析並加載後使用document.write()
將導致瀏覽器清除當前文檔並開始新文檔。我不知道這個代碼適合的更大的上下文,但是這可能會導致你的問題。
如果它是'for-for'循環:'for(讓namenameArray)'',這將起作用。 – Xufox