合并对象数组

最近在做多图片上传,发现上传前后文件顺序不一致,那么如何让上传后的顺序跟上传前的顺序保持一致呢?经过调试发现上传前后文件各自以对象形式存放在数组中,所以自己想的解决方法就是将上传前后的数组以上传前的文件名为键值合并下,自己简单写了个函数实现了下合并对象数组的功能,感觉效率不是很高,暂时没想到更好的办法。。。

function mergeArrayByKey(...args) {
   const key = args[0];
   const map = {};
   for(let i = 1; i < args.length; i+=1) {
     for(let j = 0; j < args[i].length; j+=1) {
       let currentEle = args[i][j];
       let currentKey = currentEle[key]
       if(!map[currentKey]) {
         map[currentKey] = currentEle;
       } else {
         map[currentKey] = Object.assign(map[currentKey], currentEle);
       }
    }
   }
   return Object.values(map);
}

mergeArrayByKey(
  'name',
  [{'name':'01', a:1},{'name':'02', a:2}],
  [{'name':'01', b:1},{'name':'03', b:2}]
);    
// [{name: "01", a: 1, b: 1},{name: "02", a: 2},{name: "03", b: 2}]
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,703评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 五名指套着那段感情 阳光下透过每条纹痕 散着的光芒无与伦比 放开小指对你的眷恋 孤单单的泪流 流过指尖让人心疼 圈...
    李译阅读 330评论 0 3
  • 都说——男生说“我有女朋友”的答案有两个 可是我不想信这两个 我相信你没有女朋友 你不玩手机 你不玩游戏 一天又只...
    狒狒傻丫头_阅读 170评论 0 0
  • 望穿于秋水长天,凝眸于袅袅红尘,高仿手表用多少落花来细数相思片片。用多少落叶来铺满诗章篇篇。忧婉的文字,字字抖落了...
    胖乎乎先生阅读 213评论 0 10