web-dev-qa-db-ja.com

値(整数)でlodashを使用して配列を並べ替える

私は本当にそれに苦労していますが、解決策を見つけることができません。

配列があり、値(すべて整数)で並べ替えます。 lodashを使用してみましょう。そのための便利な機能が必要です。

どういうわけか、私はこれを行うことがわかりません。

これまでのところ、私はこれを手に入れました:

myArray = [3, 4, 2, 9, 4, 2]

このコードを使用すると、結果が得られました。

myArray = _(myArray).sort();

しかし残念ながら、戻り値は配列ではないようです。 myArray.lengthは、ソート後は未定義です。

Lodashソート配列の何千もの例を見つけましたが、常にキーを介しています。 https://lodash.com/docs#sortBy

誰かが次の戻り結果を配列として取得する方法を教えてもらえますか?:

[2, 2, 3, 4, 4, 9]

それほど難しいことではありませんが、どういうわけか私はそれを終わらせません...

また、lodashのドキュメントは少し複雑だと思うこともあります。私はおそらく重要な詳細を見落としているだけでしょう...

39
Merc

ここで sortBy() 関数を使用できます。 identity() にフォールバックするため、キーを指定する必要はありません。

var myArray = [ 3, 4, 2, 9, 4, 2 ];

_.sortBy(myArray);
// → [ 2, 2, 3, 4, 4, 9 ]

_(myArray).sortBy().take(3).value();
// → [ 2, 2, 3 ]
62
Adam Boduch

選択した回答は正しいですが、sort()でそのタスクを実行することもできます

const _ = require('lodash');
const myArray = [1,2,3,4,"A1","A10","A11","A12","A2","A3","A4","AZ","A5","B10", "B2", "F1", "F12", "F3",1,5,6,7,0,"a","b","a1"];

const sortFilter = _(myArray).sort().value();
console.log(sortFilter)

const sortByFilter = _(myArray).sortBy().value();
console.log(sortByFilter)
0
Renish Gotecha