js根据数组对象中某个元素合并数组
一个数组,根据数组中某个元素,合并数组
// 需要被合并的数组,把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根据数组对象中某个元素合并数组的更多相关文章
- JS 删除Array对象中的元素。
var idTemp=new Array(); var nameTemp = new Array(); nameTemp.splice($.inArray(“1”, nameTemp),1); idT ...
- js 替换json对象中的键名
js 替换json对象中的键名 CreateTime--2018年3月30日15:38:50 Author:Marydon 情景描述: 有个json数组,现在需要将json对象中的key替换掉,值 ...
- 使用HTML5的JS选择器操作页面中的元素
文件命名为:querySelector.html,可在Chrome浏览器中预览效果. 1 <!DOCTYPE html> 2 <html lang="en"> ...
- Js/Jquery获取iframe中的元素
转载: Js/Jquery获取iframe中的元素 - - ITeye技术网站http://java-my-life.iteye.com/blog/1275205 在web开发中,经常会用到ifram ...
- 计算数组arr中所有元素的和
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- Day_11【集合】扩展案例5_对list集合对象中的元素进行反转,求最大值最小值,求元素i在list集合中首次出现的索引,将oldvalue替换为newvalue
分析以下需求,并用代码实现 定义MyArrays工具类,该工具类中有以下方法,方法描述如下: 1.public static void reverse(ArrayList<Integer> ...
- JavaScript 获取数组对象中某一值封装为数组
1.获取数组对象中某一值封装为数组(一) data = [["2000-06-05",116],["2000-06-06",129]]; var dateLis ...
- [Effective JavaScript 笔记]第51条:在类数组对象上复用通用的数组方法
前面有几条都讲过关于Array.prototype的标准方法.这些标准方法被设计成其他对象可复用的方法,即使这些对象并没有继承Array. arguments对象 在22条中提到的函数argument ...
- js中的数组对象中的方法解析
concat()方法: 合并两个数组,返回新对象的结果: join()方法 : 把数组内的所有元素加入到一个字符串中,传入的分隔符就是指定的分隔符 pop()方法: 删除数组并返回数组的最后一个元 ...
随机推荐
- 关于Unity层级面板的自动初始化
Transform[],GameObject[]这些class类型,Unity会进行自动初始化. 但[ExecuteInEditMode]在编辑模式下执行的时候,会发现初始化其实也是有顺序的,并且在U ...
- MongoDB Query 的几个方法
Query.All("name", "a", "b");//通过多个元素来匹配数组Query.And(Query.EQ("name ...
- CentOS安装使用git
yum install git yum install git-gui (可选) git config --global user.name "gg" git config --g ...
- (oneway void) release中oneway的意思
oneway is used with the distributed objects API, which allows use of objective-c objects between dif ...
- CSS3背景总结
值 描述 CSS background-color 规定要使用的背景颜色. 1 background-position 规定背景图像的位置. 1 background-size 规定背景图片的尺寸. ...
- js 内置对象常用方法
1 内容概述 js包含一些内置对象,如Array,Function,String等,这些是基本的,常用的js类,所以了解它们十分重要:把他们的方法,用例子和文字简要的记录下来,方便今后参看. 2 Ar ...
- char函数绕过魔术引号注入
我目前学习到的绕过魔术引号的几种方法(如果知道还有别的请万望告之): 1.倘若服务端是GBK可以尝试宽字节注入 2.使用char函数绕过魔术引号进行注入 3.同char函数类似的函数,例如bin(转换 ...
- 记录一个glibc 导致的段错误以及gdb 移植
上一篇我有相关关于一个段错误的记录,现在记录当时的段错误具体是在哪里的. // 从 GNU 的官网下载当前在使用的 glibc 的源代码以及最新的 glibc 源代码 // 地址如下: http:// ...
- Okra框架(三) 搭建HTTP服务器
Okra通过封装成熟高效的框架以简化应用程序服务器构建的过程.上一篇介绍了使用Okra快速搭建Socket服务器. 本篇承接上一篇,介绍快速搭建简单高性能的Http服务器. 这里需要说明一下Okra框 ...
- [转]hadoop,spark,storm,pig,hive,mahout等到底有什么区别和联系?
摘自知乎大神的论述 作者:Xiaoyu Ma链接:https://www.zhihu.com/question/27974418/answer/38965760来源:知乎著作权归作者所有,转载请联系作 ...