入力された配列のソートされたコピーを返すソート関数が必要だとしましょう。私は単純にこれを試しました
function sort(arr) {
return arr.sort();
}
これでこれをテストしました。これは、私のsort
メソッドが配列を変更していることを示しています。
var a = [2,3,7,5,3,7,1,3,4];
sort(a);
alert(a); //alerts "1,2,3,3,3,4,5,7,7"
私もこのアプローチを試しました
function sort(arr) {
return Array.prototype.sort(arr);
}
しかし、それはまったく機能しません。
これを回避する簡単な方法はありますか?できれば、自分の並べ替えアルゴリズムを手動でローリングしたり、配列のすべての要素を新しい要素にコピーしたりする必要がない方法が望ましいでしょうか?
アレイをコピーするだけです。それには多くの方法があります。
function sort(arr) {
return arr.concat().sort();
}
// Or:
return Array.prototype.slice.call(arr).sort(); // For array-like objects
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加