gpt4 book ai didi

javascript - 如何使用 Lodash 在数字数组中按位置排序

转载 作者:行者123 更新时间:2023-11-30 10:00:32 25 4
gpt4 key购买 nike

我有一个必须排序的字符串数组:

['1.2.3', '1.5.2', '1.23', '1.20.31']

是否可以对数组进行排序,以便在将字符串按 1.2.3 之类的点拆分为 ['1','2', '3'] 我们与另一个数组逐个位置比较(如 Python 元组比较)?

预期结果

['1.2.3', '1.5.2' '1.20.31', '1.23']

我知道可以使用原生 JavaScript .sort 和比较函数获取 2 个对象,但我不能使用 JS 排序,因为我不能修改原始数组。是否可以使用 Lodash 的 _.sortBy 希望您提供关键功能?

最佳答案

使用 Vanilla.js 的解决方案:

var data = ['1.2.3', '1.5.2', '1.23', '1.20.31'];

function customSort(d) {
return d.map(function (a) {
return a.split('.').map(Number);
}).sort(function (a, b) {
var l = 0, m = Math.min(a.length, b.length);
while (l < m && a[l] === b[l]) {
l++;
}
return l === m ? a.length - b.length : a[l] - b[l];
}).map(function (a) {
return a.join('.');
});
}

document.write('<pre>sorted array ' + JSON.stringify(customSort(data), 0, 4) + '</pre>');
document.write('<pre>original array ' + JSON.stringify(data, 0, 4) + '</pre>');

关于javascript - 如何使用 Lodash 在数字数组中按位置排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31972076/

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