-2

こんにちは、並べ替えを使用して配列を並べ替えていましたが、JavaScript がコードを実行する理由/方法/順序がわかりません。

以下のコード

arr = ["cc", "aa", "dd", "bb"];

console.log(arr);

fun = function() {
    var re = arr;
    console.log(re);

    re = re.sort();
    console.log(re); 
};


fun();

sort() メソッドが元の配列オブジェクトを変更することは知っていますが、sort メソッドの前に console.log を実行すると、配列の元の順序が取得されないのはなぜですか?

誰か JavaScript の実行順序を説明してもらえますか? 上から下まで実行されたと思いました。

ありがとう。

更新:以下のJSfiddle

http://jsfiddle.net/BPNWC/

4

2 に答える 2

2

あなたの最初のconsole.logプリントアウト["cc", "aa", "dd", "bb"]

何も変更されていないため、2番目console.logの出力が出力されます["cc", "aa", "dd", "bb"]

あなたの3番目console.logの印刷物は次の[ 'aa', 'bb', 'cc', 'dd' ] 理由によりsort()ます。配列をアルファベット順に「ソート」します。

于 2013-10-31T09:22:11.397 に答える
0

「Array.join」メソッドの中間実行ステップを調べたい場合は、比較子を渡して、受け取った値を調べることができます。

arr.sort(function(a, b) {
    console.log([a, b], arr);             // log both parameters and the array
    return (a==b ? 0 : (a < b ? -1 : 1)); // return re comparison result
});
于 2013-10-31T09:39:14.153 に答える