gpt4 book ai didi

javascript - 在javascript中更改对象数组顺序的最佳方法是什么

转载 作者:行者123 更新时间:2023-11-30 07:55:32 24 4
gpt4 key购买 nike

重新排序对象数组的最简单方法是什么?

我想根据组值重新排序(自定义顺序)

[ { groupValue: 'Corp',
doclist: { numFound: 259, start: 0, maxScore: 1.1320078, docs: [Object] } },
{ groupValue: 'Phone',
doclist: { numFound: 7975, start: 0, maxScore: 1.2560269, docs: [Object] } },
{ groupValue: 'Shop',
doclist: { numFound: 9, start: 0, maxScore: 1.2556685, docs: [Object] } } ]

如果我传入带有组值的参数,则对应于组值的特定对象应该出现在顶部

有点像

function ("Shop",originalArray){
return newArray;
}

应该返回:

    [ { groupValue: 'Shop',
doclist: { numFound: 9, start: 0, maxScore: 1.2556685, docs: [Object] } },
{ groupValue: 'Corp',
doclist: { numFound: 259, start: 0, maxScore: 1.1320078, docs: [Object] } },
{ groupValue: 'Phone',
doclist: { numFound: 7975, start: 0, maxScore: 1.2560269, docs: [Object] } }]

最佳答案

这应该可以工作,给出一个新数组并且应该只遍历一次原始数组。

var data = [{
groupValue: 'Corp',
doclist: {
numFound: 259,
start: 0,
maxScore: 1.1320078,
docs: [Object]
}
}, {
groupValue: 'Phone',
doclist: {
numFound: 7975,
start: 0,
maxScore: 1.2560269,
docs: [Object]
}
}, {
groupValue: 'Shop',
doclist: {
numFound: 9,
start: 0,
maxScore: 1.2556685,
docs: [Object]
}
}];

function goFirst(d, daFirst) {
var r = [];

d.forEach((e) => {
if (e['groupValue'] === daFirst)
r.unshift(e);
else
r.push(e);
})

return r;
}

console.log(goFirst(data, 'Shop'));

关于javascript - 在javascript中更改对象数组顺序的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40667125/

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