gpt4 book ai didi

javascript - 使用另一个数组中的值对对象数组进行排序

转载 作者:行者123 更新时间:2023-12-02 16:11:20 25 4
gpt4 key购买 nike

我有两个数组,都是对象。

慈善机构(无序):

[{
"_id": "5527c2b29a4c7ebe2953129d",
"name": "Lorem ipsum",
"number": 1,
"metric": "Lorem ipsum",
"metricConversion": 6,
"logo": "http://api.fake.net/example.png",
"country": "Albania",
"twitter": "exampletwitter",
"facebook": "examplefb"
}, ...]

促销:

[{
"type": 1,
"charity": "5527c2b29a4c7ebe2953129d",
"start": Sun May 10 2015 14:11:32 GMT+0100 (BST),
"end": Thu Jul 02 2009 00:00:00 GMT+0100 (BST),
"priority": 10
}, ...]

促销数组按优先级排序(最大的优先)。

我想做的是按促销数组对慈善机构数组进行排序,因此将优先级最高的慈善机构放在第一位,依此类推(连接是 _id慈善机构)。

我可以想到几种简单的方法来做到这一点,但是我想到的方法效率很低。有什么建议吗?

最佳答案

创建一个以慈善机构 ID 作为键、索引(或优先级)作为值的 map :

var map = {};
for (var i = 0; i < promotions.length; i++) {
map[promotions[i].charity] = i;
}

现在您可以对慈善机构进行排序并使用 map 来确定其顺序:

charities.sort(function(a, b){
return map[a._id] - map[b._id];
});

关于javascript - 使用另一个数组中的值对对象数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30151886/

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