gpt4 book ai didi

javascript - Lodash 按字母顺序排序

转载 作者:行者123 更新时间:2023-12-03 09:05:03 25 4
gpt4 key购买 nike

Loadash 默认的 sortby 函数按 ASCII 字符对数据进行排序。当在小写和大写字符串之间进行排序时,它会引起麻烦。

 filteredData = _.sortBy(filteredData, sortByField);

这里filteredData是一个对象数组。我刚刚调试到 sortby 方法,我可以看到,内部仅由需要排序的列组成了一个数组..

换句话说,我有filtereddata,它的列为col1,col2,col3,col4...基于sortbyField,在loadash.js文件中,形成了一个内部数组..例如,如果我想sortby col3,用col3组成一个数组,然后进行排序..

我想在 loadash 文件中包含 toLowerCase,但由于不建议这样做,所以我没有这样做。

另一个选择是,我必须将整个对象转换为小写,我相信这会产生开销。

有人能给我提供最好的解决方案吗?

最佳答案

_.sort(filteredData, function (a, b) {
var col1a = a.col1.toLowerCase();
var col1b = b.col1.toLowerCase();
if (col1a === col1b) {
return 0;
}
if (col1a > col1b) {
return 1;
}
return -1;
});

或者花哨:

var modArg = function (arg) {
return arg.col1.toLowerCase();
};

var compare = _.modArg(function (a, b) {
if (a === b) {
return 0;
}
if (a > b) {
return 1;
}
return -1;
}, modArg, modArg);

_.sort(filteredData, compare);

关于javascript - Lodash 按字母顺序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32209000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com