首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用其他数组中的值对对象数组进行排序

问使用其他数组中的值对对象数组进行排序
EN

Stack Overflow用户
提问于 2015-05-10 21:18:04
回答 1查看 30关注 0票数 0

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

慈善机构(无序):

代码语言:javascript
复制
[{
    "_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"
}, ...]

促销活动:

代码语言:javascript
复制
[{
    "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
}, ...]

promotions数组按优先级排序(最高优先)。

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

我可以想到几种简单的方法来做到这一点,但是脑海中浮现的那些方法效率非常低。有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2015-05-10 21:23:01

创建一个map,将慈善id作为key,索引(或优先级)作为value:

代码语言:javascript
复制
var map = {};
for (var i = 0; i < promotions.length; i++) {
  map[promotions[i].charity] = i;
}

现在,您可以对慈善机构进行排序,并使用地图来确定它们的顺序:

代码语言:javascript
复制
charities.sort(function(a, b){
  return map[a._id] - map[b._id];
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30151886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档