我尝试按键数组对对象数组进行排序。我搜索了类似的问题,但没有找到能帮助我的答案。
示例:
示例:
const data = [
{ label: 'String'},
{ label: 'Number'},
{ label: 'Boolean'},
{ label: 'Array'}
]
const order = [2, 3]
期望的结果:
const data = [
{ label: 'Boolean'},
{ label: 'Array'},
{ label: 'String'},
{ label: 'Number'}
]
我所面临的问题是:
order
数组可能与data
数组长度不同,不在order
中的项必须排在底部data
对象没有一个帮助排序的order
键,排序将由数组对象键位置进行
我尝试过但未成功的方法:
data.sort((a, b) => {
const aIndex = data.indexOf(a);
const bIndex = data.indexOf(b);
if(aIndex !== -1) return -1;
if(bIndex !== -1) return 1;
return order.indexOf(aIndex) - order.indexOf(bIndex);
})
[2,3]
对输出结果有什么影响?您展示的输出结果似乎只是按字母数字顺序排序。 - Rory McCrossanorder
数组中,我存储了我想要排序的对象的初始位置和我想要放置该对象的新位置。标签字符串只是一个例子,它可以是任何文本。 - Florin D