Javascript .pop()和.sort()在for循环中无法正常工作

时间:2013-07-29 02:29:24

标签: javascript arrays for-loop

我正在尝试删除数组中的最后一个元素,但它最终会将删除的元素放回列表的顶部,而其他一些元素的列表则不同。

使用.sort()方法也是如此。输出显示五次这句话: 托尔斯泰写了战争与和平,吐温写了哈克贝利芬恩

var author_title = new Array(5)
author_title[0]="Tolstoy wrote War and Peace";
author_title[1]="Twain wrote Huckleberry Finn";
author_title[2]="Hardy wrote The Return of the Native";
author_title[3]="Dickens wrote A Christmas Carol";
author_title[4]="Uris wrote Exodus";

for(var count=0;count<author_title.length;count++) {
document.write(author_title.pop() + "<br>");
}

for(var count=0;count<author_title.length;count++) {
document.write(author_title.sort()+"<br>");
}

2 个答案:

答案 0 :(得分:0)

如果你想改变你的数组,那么使用pop,在array.length循环之外写一个等同于for的变量,然后将你的变量设置为声明的变量。您必须记住每次使用.pop()时都要更改数组,从而在每次迭代中更改for-loop。此外,<br />适用于HTML,因此您可能忘记了

上的自动结束标记
var length = array.length;
for( var i = 0; i > length; i++ ) {
     document.write( array.pop() + "\n")
}

答案 1 :(得分:-2)

这部分内容无效。 for..in循环遍历为每个正确而不是值。它不适用于迭代数组。在我的机器上,它会生成012等。

在迭代数组时,您还尝试pop个元素。 pop修改数组,因此迭代器将在每次迭代时失效。

你想要的是一个简单的for循环:

for (var i = 0; i < author_title.length; ++i) {
  console.log(author_title[i]);
}