attr
文字列型のフィールドに基づいて並べ替えたいオブジェクトのリストがあります。-
list.sort(function (a, b) {
return a.attr - b.attr
})
しかし、-
JavaScript の文字列では機能しないようです。文字列型の属性に基づいてオブジェクトのリストを並べ替えるにはどうすればよいでしょうか?
ベストアンサー1
使用String.prototype.localeCompare
あなたの例に従って:
list.sort(function (a, b) {
return ('' + a.attr).localeCompare(b.attr);
})
例外を回避するためにa.attrを文字列に強制します。localeCompare
サポートされていますInternet Explorer 6以降および Firefox 1。ロケールを考慮しない次のコードが使用されている場合もあります。
if (item1.attr < item2.attr)
return -1;
if ( item1.attr > item2.attr)
return 1;
return 0;