Lodash中的sortBy()在调用函数const sortedData = _.sortBy(data, ['rawAvgPrice'], ['desc']);
时,当我传递'desc'时,没有按降序排序。这对升序很有效。但对降序就不行了。我已经发布了我编写的排序功能。我读了线程“lodash multi-column sortBy descending“,但它对我的问题没有帮助。因此决定发布这个。
/**
* @param {String} element - sorting object element name.
* @param {String} dir - the direction of the sort ASC/DESC.
* @param {Boolean} flag - Signaling to sort the table and update.
*/
sortTableNew(element, dir, flag) {
let direction = dir;
// Change the sorting from ASC to DESC/ DESC to ASC
if (flag) {
direction = dir === 'asc' ? 'desc' : 'asc';
}
// Getting the current open tabs details
const { activeTab } = this.$props.state.keywordSearch;
const { data } = this.$props.state.keywordSearch.tabs[activeTab];
const sortedData = _.sortBy(data, [element], [direction]);
// Updating the cache to dispatch data to the table
cachedHelper.updateCacheKeyword(cachedHelper.SCREEN_TYPE.keywordSearch, activeTab, sortedData);
cachedHelper.updateCacheSortType(cachedHelper.SCREEN_TYPE.keywordSearch, activeTab, direction, column);
},
3条答案
按热度按时间qvk1mo1f1#
在lodash文档中,我们在搜索
_.sortBy
时发现:创建元素数组,按集合中的每个元素在每个迭代对象中运行的结果按升序排序。从这里我们可以看到
_.sortBy
总是返回一个升序排序的数组。您可以尝试使用
_.orderBy
,如下所示:_.orderBy(users, 'age', 'desc');
eanckbw92#
您可以尝试使用Lodash的orderBy方法,它对我来说非常有用。
您可以在此处查看官方文档Lodash orderBy
5n0oy7gb3#
这里没有提到的另一个选项是只对结果进行
.reverse()
: