gpt4 book ai didi

javascript - 根据带有下划线的数组对对象进行排序

转载 作者:行者123 更新时间:2023-12-03 03:27:06 25 4
gpt4 key购买 nike

我正在尝试与数组相比对对象进行排序。因此,循环将在数组中查找特定值,直到找到一个,然后将这 3 个元素放在开头,其余元素放在末尾。我不确定最好的方法是什么?有什么想法吗?

事情是这样的:

var arr = [1, 3, 2,4,5,6, 2]; 
var arrSimilar = [1,2,5]


var testSortBy = _.sortBy(arr, function(arrSimilar){
// [1,2,5,3,4,6,2]
});

console.log(testSortBy); // [1,2,5,3,4,6,2]

最佳答案

您可以使用sorting with map并以相似数组的值的索引作为优先排序,然后以所有其他值的索引作为顺序。

重要的是删除similar数组的已使用值,因为它现在正在使用中,并且对于其他类似值没有任何意义。这意味着,相同的值将按其原始相对索引排序。

var array = [1, 3, 2, 4, 5, 6, 2],
similar = [1, 2, 5],
result = array
.map(function (a, i) {
var priority = similar.indexOf(a);
delete similar[priority]; // delete value, but keep the index of other items
return { index: i, priority: (priority + 1) || Infinity };
})
.sort(function (a, b) {
return a.priority - b.priority || a.index - b.index;
})
.map(function (o) {
return array[o.index];
});

console.log(result); // [1, 2, 5, 3, 4, 6, 2]

关于javascript - 根据带有下划线的数组对对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46273976/

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