gpt4 book ai didi

javascript - 在 IE 中排序数组

转载 作者:行者123 更新时间:2023-11-30 14:49:56 24 4
gpt4 key购买 nike

我的 javascript 中有一个名为 myArr 的数组,如下所示。

["ob1","ob10","ob4","ob5","ob12"]

当我对这个数组进行排序时,它没有按照数字的顺序排序,因为它是一个字符串数字。因此我使用下面的方法对数组进行排序,现在它可以工作了。

var collator = new Intl.Collator(undefined, { numeric: true, sensitivity: 'base' });
myArr .sort(collator.compare);

但是IE9不支持该方法。有什么方法可以在 IE 中对这种数组进行排序吗?

最佳答案

如果您的数组元素都遵循一些非数字后跟一些十进制数字的模式,那么您可以通过将字符串拆分为非数字和数字部分,然后首先比较非数字部分来实现然后是数字部分。 (如果非数字部分总是“ob”,它可能会更简单,但我在这里允许使用其他字符串。)

var array = ["ob1","ob10","ob4","ob5","oc10","ob12","oc4"];

var re = /(\D+)(\d+)/;

var sorted = array.sort( function( a, b ) {
var aa = a.match( re );
var bb = b.match( re );
return(
aa[1] < bb[1] ? -1 :
aa[1] > bb[1] ? +1 :
aa[2] - bb[2]
);
});

console.log( sorted );

关于javascript - 在 IE 中排序数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48298456/

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