1

配列の最後の要素を削除しようとしていますが、削除された要素がリストの一番上に戻され、他の要素の一部が別の方法でリストされます。

.sort() メソッドを使用しても同じです。出力には、この文が 5 回表示されます。トルストイは戦争と平和を書き、トウェインはハックルベリー フィンを書きました。

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

-2

これのどの部分も機能しないはずです。for..inループは、値ではなく、それぞれのキーを適切に反復します。配列を反復処理するためのものではありません。私のマシンでは、、、などを生成し0ます。12

popまた、配列を反復処理しながら要素を試行しています。pop配列を変更するため、反復子は各反復で無効になります。

あなたが望むのは単純なforループです:

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