1

我试图删除数组中的最后一个元素,但最终将删除的元素放回列表的顶部,并且其他一些元素的列出方式不同。

使用 .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>");
}
4

2 回答 2

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")
}
于 2018-03-20T21:24:25.007 回答
-2

这其中的任何部分都不应该起作用。for..in循环正确地迭代每个,而不是值。它不适用于迭代数组。在我的机器上,它会产生0, 1,2等。

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

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

for (var i = 0; i < author_title.length; ++i) {
  console.log(author_title[i]);
}
于 2013-07-29T02:34:09.337 回答