
JavaScriptの配列のソートの話 (3) – lodash _.orderBy()
lodashのorderBy
について書くのを忘れていたので簡単に。sortBy
よりも柔軟なソートを手軽に行うことができる。
it('_.orderBy()でソートできる', () => {
// Act
const sortedUsers = _.orderBy(users, ['user', 'age'], ['asc', 'desc']);
// Assert
expect(sortedUsers).toEqual([
{'user': 'barney', 'age': 36},
{'user': 'barney', 'age': 34},
{'user': 'fred', 'age': 48},
{'user': 'fred', 'age': 40},
])
});
上の例は、第1ソートがuser
プロパティの値の昇順、第2ソートがage
プロパティの値の降順であることを示している。以下のようにネストされたプロパティの指定もできる。
it('_.orderBy()でソートできる', () => {
// Act
const sortedUsers = _.orderBy(users, ['user', 'age'], ['asc', 'desc']);
// Assert
expect(sortedUsers).toEqual([
{'user': 'barney', 'age': 36},
{'user': 'barney', 'age': 34},
{'user': 'fred', 'age': 48},
{'user': 'fred', 'age': 40},
])
});
以上。