一个数组,根据数组中某个元素,合并数组

// 需要被合并的数组,把Index相同的数组合并

const arr = [{id:0,name:'张三'}, {id:0,name:'李四'}, {id:1,name:'王五'}, {id:1,name:'张伟'}, {id:2,name:'张江'},  ] 

var map = {}, result = [];

for(var i = 0; i < arr.length; i++){
var ai = arr[i];
if(!map[ai.id]){
result.push({
id: ai.id,
name: ai.name,
data: [ai]
});
map[ai.id] = ai;
}else{
for(var j = 0; j < result.length; j++){
var dj = result[j];
if(dj.id == ai.id){
dj.data.push(ai);
break;
}
}
}
} console.log(result) //
[{"id":0,"name":"张三","data":[{"id":0,"name":"张三"},{"id":0,"name":"李四"}]},
{"id":1,"name":"王五","data":[{"id":1,"name":"王五"},{"id":1,"name":"张伟"}]},
{"id":2,"name":"张江","data":[{"id":2,"name":"张江"}]}]

js根据数组对象中某个元素合并数组的更多相关文章

  1. JS 删除Array对象中的元素。

    var idTemp=new Array(); var nameTemp = new Array(); nameTemp.splice($.inArray(“1”, nameTemp),1); idT ...

  2. js 替换json对象中的键名

      js 替换json对象中的键名 CreateTime--2018年3月30日15:38:50 Author:Marydon 情景描述: 有个json数组,现在需要将json对象中的key替换掉,值 ...

  3. 使用HTML5的JS选择器操作页面中的元素

    文件命名为:querySelector.html,可在Chrome浏览器中预览效果. 1 <!DOCTYPE html> 2 <html lang="en"> ...

  4. Js/Jquery获取iframe中的元素

    转载: Js/Jquery获取iframe中的元素 - - ITeye技术网站http://java-my-life.iteye.com/blog/1275205 在web开发中,经常会用到ifram ...

  5. 计算数组arr中所有元素的和

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  6. Day_11【集合】扩展案例5_对list集合对象中的元素进行反转,求最大值最小值,求元素i在list集合中首次出现的索引,将oldvalue替换为newvalue

    分析以下需求,并用代码实现 定义MyArrays工具类,该工具类中有以下方法,方法描述如下: 1.public static void reverse(ArrayList<Integer> ...

  7. JavaScript 获取数组对象中某一值封装为数组

    1.获取数组对象中某一值封装为数组(一) data = [["2000-06-05",116],["2000-06-06",129]]; var dateLis ...

  8. [Effective JavaScript 笔记]第51条:在类数组对象上复用通用的数组方法

    前面有几条都讲过关于Array.prototype的标准方法.这些标准方法被设计成其他对象可复用的方法,即使这些对象并没有继承Array. arguments对象 在22条中提到的函数argument ...

  9. js中的数组对象中的方法解析

    concat()方法:  合并两个数组,返回新对象的结果: join()方法 :  把数组内的所有元素加入到一个字符串中,传入的分隔符就是指定的分隔符 pop()方法: 删除数组并返回数组的最后一个元 ...

随机推荐

  1. SQL Server2005 两台服务器上的数据库互相同步(转载)

    1.1测试环境 Item 发布机 A 订阅机 B OS Windows 2003 Server Windows 2003 Server SQL SQL Server 2005 企业版 SQL Serv ...

  2. Memory leak patterns in JavaScript

    Handling circular references in JavaScript applications Plugging memory leaks in JavaScript is easy ...

  3. xcode 筛选error

    程序编译出太多warning,想从中找到error很不容易,xcode中可以作筛选,点左下角的叹号即可只显示error:

  4. 禁止用户登陆的 /bin/false和/sbin/nologin的区别

    1 区别 /bin/false是最严格的禁止login选项,一切服务都不能用. /sbin/nologin只是不允许login系统  小技巧: 查看 /etc/passwd文件,能看到各用户使用的sh ...

  5. /^(0|[1-9]\d*)([.]5)?$/ 在PHP正则中是什么意思 ?

    ^以什么开头 ()分组 |或的意思 \d 匹配任何数字字符串 [-] |[-]\d* 或1-9之间的数+任意数字零次或多次 开头 ()分组 []原子表 [.]5匹配. ? 零次或1次 总结: 必须以0 ...

  6. 再谈API GateWay服务网关

    前面在谈微服务架构的时候,我博客上转过Chris Richardson 微服务系列中对微服务网关的描述: 通常来说,使用 API 网关是更好的解决方式.API 网关是一个服务器,也可以说是进入系统的唯 ...

  7. 聊一聊HTML <pre>标签

    聊一聊HTML <pre>标签 我们经常会在要保持文本格式的时候使用pre标签,比如当我们要展示源代码的时候,只要放一个pre标签,然后把源代码直接复制,粘贴,然后在页面上就可以保持好格式 ...

  8. js delete

    在开始之前,先让我们看一段代码 >>> var sum = function(a, b) {return a + b;} >>> var add = sum; &g ...

  9. 终端运行apk

    启动一个活动 am start -n com.example.apptest/com.example.apptest.MainActivity 替换apk . udisk1/runRCApk.sh s ...

  10. Oracle复习(有记录才能沉淀.......)

    一.Oracle准备工作 1.安装Oracle Oracle数据库产品是免费的,我们可以从Oracle的官方网站(http://www.oracle.com)下载到程序安装包,Oracle在Windo ...