javascriptのsort()で思いっきり躓いたのでメモ。オブジェクトの値がハッキリしない場合、手抜きしてはいけない。

【パターン1】※不正解
data.sort(function(b, a) {return b.val-a.val});

【パターン2】※不正解
data.sort(function(b, a) {return Math.floor(b.val)-Math.floor(a.val)});

【パターン3】※正解
data.sort(function(b, a) {return hikaku(b.val)-hikaku(a.val)});
function hikaku(val) {
return (val) ? Math.floor(val) : 0;
}

 パターン1やパターン2において、ソート対象の値が存在しない場合、そのオブジェクトはソートされない。
 そこで、パターン3のように、値が存在しない場合は「0」に置き換える。
Shared publicly