Array.prototype.sort() 的排序稳定性
排序稳定性(stable sorting)是排序算法的重要属性,指的是排序关键字相同的项目,排序前后的顺序不变。
const arr = [
'peach',
'straw',
'apple',
'spork'
];
const stableSorting = (s1, s2) => {
if (s1[0] < s2[0]) return -1;
return 1;
};
arr.sort(stableSorting)
// ["apple", "peach", "straw", "spork"]
上面代码对数组arr
按照首字母进行排序。排序结果中,straw
在spork
的前面,跟原始顺序一致,所以排序算法stableSorting
是稳定排序。
使用 sort() 方法就可以轻易将选项ABCD排序了
const abcdsort = res.data.options.map(it => {
return it.code
}).sort()
const newlist = []
abcdsort.forEach(item => {
const obj = res.data.options.find(ite => {
return item === ite.code
})
newlist.push(obj)
})
res.data.options = newlist
上面是我在项目中遇到的,在没有排序前,选项顺序可能因为修改的原因不是正常排序的,修改后就正常了
这是修改前:
修改后: