5
sort()がどのように正確に動作し、どのように使用するのかを理解しようとしています。sort()、sort(function(a、b){return a-b;})の違い。
私はいくつかの研究(Google)を行い、ここでstackoverflowで同様の質問を行ってきましたが、まだ100%明確ではないいくつかのことがあります。
だから、これまで私の理解は以下の通りです:
あります
ソート()のパラメータなし:種類文字列の唯一の単純な配列アルファベット順に値と昇順ために
例パラメータとしての機能を有する
// sort alphabetically and ascending:
var myArr=["Bob", "Bully", "Amy"]
myArr.sort() // Array now becomes ["Amy", "Bob", "Bully"]
ソート():その特性に応じてアレイ内のオブジェクトをソートします。項目は、しかしながら、パラメータとしての機能を有する番号
myArr.sort(function(a,b) {
return a - b;
});
ソート()のように比較される。それらの特性に応じてアレイ内のオブジェクトをソートします。商品番号又はストリング
myArr.sort(function(a, b) {
if (a.sortnumber < b.sortnumber) return -1;
else if (a.sortnumber > b.sortnumber) return 1;
return 0;
});
ことができる私はすべてのこれら3ソート()関数で次の配列をソートしてみました。
var myArr = [{
"sortnumber": 9,
"name": "Bob"
},
{
"sortnumber": 5,
"name": "Alice"
},
{
"sortnumber": 4,
"name": "John"
},
{
"sortnumber": 3,
"name": "James"
},
{
"sortnumber": 7,
"name": "Peter"
},
{
"sortnumber": 6,
"name": "Doug"
},
{
"sortnumber": 2,
"name": "Stacey"
}];
//myArr.sort(); // doesn't do anything since it doesn't know on what property to sort
/*
myArr.sort(function(a, b) {
return (a.sortnumber - b.sortnumber); // sorts array
return (a.name - b.name); // doesn't sort array
});
*/
/*
// sorts array even when I use name as property to sort on
myArr.sort(function(a, b) {
if (a.sortnumber < b.sortnumber) return -1;
else if (a.sortnumber > b.sortnumber) return 1;
return 0;
});
*/
console.log(myArr);
Hereもフィドルです。
だから、私の質問は以下のとおりです。
- が私の理解は正しいですか?
- 紛失しているものはありますか?
- 3番目のケースが常に動作する場合は、常にそれに固執することができますか、 他の2つのケースは何らかの方法で効率的ですか、 3番目のケースに利点がありますか?
上記のことを誰かが詳しく説明できれば、本当にありがたいです。ありがとうございました。すべての
古いIEブラウザをサポートする必要がある場合は、第1または第3の方法を使用してください。 – Maris
_私は行方不明のものがありますか?_そのような質問は話題にはなりません。ここでは、**具体的な**問題のみを扱います。 – hindmost
@hindmost:指定されたトピックに欠けている特定のものはありますか?その質問はどのように読むべきかです。 – Setily