0
さまざまなフィールドタイプ(文字列と数字)のオブジェクトに対してorderByを使用する方法を教えてください。私は種類が混在する列の並び
[{"a":2},{"a":3},{"a":"a"},{"a":1},{"a":"b"},{"a":"c"}]
を持っているが、どのように私は
[{"a":1},{"a":2},{"a":3},{"a":"a"},{"a":"b"},{"a":"c"}]
さまざまなフィールドタイプ(文字列と数字)のオブジェクトに対してorderByを使用する方法を教えてください。私は種類が混在する列の並び
[{"a":2},{"a":3},{"a":"a"},{"a":1},{"a":"b"},{"a":"c"}]
を持っているが、どのように私は
[{"a":1},{"a":2},{"a":3},{"a":"a"},{"a":"b"},{"a":"c"}]
のようなものを得ることができます例
_.orderBy([{a: 3}, {a: 2}, {a: 'a'}, {a: 1}, {a: 'c'}, {a: 'b'}], ['a'], ['asc'])
については は、値の_.toString
結果を比較してください。
あなたは、最初に入力し、その後ソート_.groupBy
とを用途に応じてパーティションを作成する場合は
var input = [{a: 3}, {a: 2}, {a: 'a'}, {a: 1}, {a: 'c'}, {a: 'b'}],
output = _.sortBy(input, o => _.toString(o['a']));
console.log(output);
<script src="https://cdn.jsdelivr.net/lodash/4.13.1/lodash.min.js"></script>
var input = [{a: 3}, {a: 2}, {a: 'a'}, {a: 1}, {a: 'c'}, {a: 'b'}];
var output = _(input)
.groupBy(o => typeof o['a'])
.map(a => _.sortBy(a, 'a'))
.flatten()
.value();
console.log(output);
<script src="https://cdn.jsdelivr.net/lodash/4.13.1/lodash.min.js"></script>
あなたはitem.a typeof演算>> '_.sortBy(ARR、[ "A"]、機能(アイテム){リターンこのように' _.sortBy'メソッドを使用することができます! == '数字'}) '。あなたのコレクションはどこですか? –
@TheReason ty for direction。私はleftPad(https://www.npmjs.com/package/left-pad)を使ってすべての項目を文字列に変換し、 '_.orderBy([{a: '958'}、{a:7} {a: 'a'}、{a: '66'}、{a: 'c'}、{a: 'b'}、[(item)=> leftPad(item.a、10、0)] 、['asc']) '(より複雑な並べ替えのために_.orderByのみを使用しなければなりません) – carcinogen75