gpt4 book ai didi

javascript - 如何对混合文本和数字的数据进行排序?

转载 作者:行者123 更新时间:2023-12-01 00:58:27 25 4
gpt4 key购买 nike

我有一个数据将显示为表格并使用 orderBy(lodash) 对数据进行排序,但它没有按我想要的方式工作。

现在,我编码为const data = orderBy(realData, ['name'], ['asc'])

这是我的数据输入:[{名称:'A1'},{名称:'A2'},{名称:'A21'},{名称:'B10'},{名称:'A100'},{名称:'A22' },{name: 'B32'},{name:'A3'}]

问题是“orderBy”按文本方式对数据进行排序(ASCII 排序)电流输出:[{名称:'A1'},{名称:'A100'},{名称:'A2'},{名称:'A21'},{名称:'A22'},{名称:'A3' },{name:'B10'},{name:'B32'}]

但我想要这样的数据输出

[{名称:'A1'},{名称:'A2'},{名称:'A3'},{名称:'A21'},{名称:'A22'},{名称: 'A100'},{name:'B10'},{name:'B32'}]

如果有人有任何建议,请帮忙。

谢谢。

最佳答案

您可以在对数组进行排序时使用string#localeCompare回调。要对数组进行数字排序,请使用numeric 属性。

let data = [{name: 'A1'},{name: 'A100'},{name:'A2'},{name: 'A21'},{name:'A22'},{name:'A3'},{name:'B10'},{name: 'B32'}];
data.sort((a,b) => a.name.localeCompare(b.name, undefined, {numeric: true}));
console.log(data);
.as-console-wrapper {max-height: 100% !important; top: 0;}

关于javascript - 如何对混合文本和数字的数据进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56324302/

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