Lodashが便利と言われているが、何がいいのかわからなかったので調べてみたら腰抜けた
Lodashとは
配列を操作したり、抽出したり、オブジェクトに変換したり、が簡単にできるライブラリ。
細かすぎるけど伝わって欲しいlodash.jsの話 - KAYAC engineers' blog
→ JavaScriptの標準関数でもできる。
JavaScript - lodashを使うとjqueryより便利なとき(118806)|teratail
→ teratailでピンポイントな質問発見 & 回答が分かりやすい!!
Lodash/Underscoreは必要ない(かも) - Qiita
カリー、DI
なるほど・・。Lodashが使ってみようかなってレベルの人は現時点ではあまり気にしなくていいと思います。
後はcurryですね。 その時にDIのように1個だけ引数を束縛しておくという使い方が出来るので非常にはかどります
var add = _.curry((a, b) => a + b);
var add5 = add(5);
result = add5(10); // 15
toPairs()
初めて聞く関数名でした。似た感じだとtoArray()がphpやjQueryにありましたね。
Object.entries(result)と同じ挙動
let obj = { a: 1, b: 2, c: 3 }
console.log( Object.keys( obj ) ) // [ "a", "b", "c" ]
console.log( Object.values( obj ) ) // [ 1, 2, 3 ]
console.log( Object.entries( obj ) ) // [ ["a", 1], ["b", 2], ["c", 3] ]
formPairs()
toPairs()とは逆で二次元配列をオブジェクトに変換します。
[
[key1, value1],
[key2, value2],
[key3, value3]
]
の配列を
{
key1: value1,
key2: value2,
key3: value3
}
orderBy
_.sortBy(collection, [iteratees=[_.identity]])
似た関数にsortByがあります。sortByは並び替えの指定がascで固定です。
並び替えを切り替えたい場合などはorderByを使用します。
// js
this.filteredDrinks = this.drinks.slice().sort((a,b) => b.price - a.price)
// Lodash
this.filteredDrinks = _.orderBy(this.drinks, 'price', 'desc')
jsでの記述と比べ、Lodashは一目で何をしているか分かりますね。
throttle, debounce
今まで紹介してきた、配列、Collectionに対しての関数とは違い、汎用的な関数です。
.debounceは特にコストの高い処理の実行を制御するためのlodashの関数です。
Vue.jsの公式ドキュメントでも使用されていますね。