有没有办法使用主值和辅助值对对象数组进行排序?我的意思是这样的数组:
[
{ primary: 0, secondary: 'a' },
{ primary: 1, secondary: 'a' },
{ primary: 1, secondary: 'b' },
{ primary: 0, secondary: 'b' }
]
将使用主值排序,因此主值为 0 的前两个对象排在第一位,然后值 1 排在第二位,然后将再次按辅助值排序,得到数组成为
[
{ primary: 0, secondary: 'a' },
{ primary: 0, secondary: 'b' },
{ primary: 1, secondary: 'a' },
{ primary: 1, secondary: 'b' }
]
我还没有真正接触过Array.sort()
在此之前,我试图找出如何做到这一点,任何帮助将不胜感激!
最佳答案
您可以使用Array#sort
.
比较将首先按primary
(数字)进行比较,如果相等则按secondary
进行比较(使用 String#localeCompare
的字符串)
const arr = [ { primary: 0, secondary: 'a' }, { primary: 1, secondary: 'a' }, { primary: 1, secondary: 'b' }, { primary: 0, secondary: 'b' } ];
const res = arr.sort((a, b) =>
a.primary - b.primary || a.secondary.localeCompare(b.secondary)
);
console.log(res);
关于javascript - 具有主值和次值的数组排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70915232/