当您使用此结构:
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