js合并数组对象中key相同的数据,并以此key生成新对象
1.对象判断
let newAarray = [];if (info.checkedNodes && info.checkedNodes.length > 0) {let idArray = [];info.checkedNodes.forEach(function (ele, i) {if (idArray.indexOf(info.checkedNodes[i].systemId) === -1 &&info.checkedNodes[i].systemId) {newAarray.push({id: info.checkedNodes[i].systemId,menuList: [info.checkedNodes[i].key],});idArray.push(info.checkedNodes[i].systemId);} else {newAarray.forEach(function (dom, k) {if (newAarray[k].id == info.checkedNodes[i].systemId) {newAarray[k].menuList.push(info.checkedNodes[i].key); //把具有相同systemId的key值进行合并}});}});console.log(newAarray, '2222222');}
2、reduce
不足:有个bug,通过合并同类属性重组,它会给最后的数组添加空属性,然后也没找到是哪里来的,但是可以把最后的数组通过filter拿到有值的数据这种方法去除空属性。
//方法
const Group = (arr = [], key) => {return key? arr.reduce((t, v) => {if (!t[v[key]]) {t[v[key]] = {id: v[key],menuList: [],};}t[v[key]].menuList.push(v.key);return t;}, []): [];};//使用
let resdata = Group(info.checkedNodes.filter((item) => item.systemId),'systemId',).filter((item) => item);
js合并数组对象中key相同的数据,并以此key生成新对象相关推荐
- js合并对象和js合并数组
js合并对象 Object.assign(target,xxx,xxx,...) :将所有可枚举属性的值从一个或多个源对象复制到目标对象 assign<T, U, V>(target: ...
- 数组中的对象的特征值提取生成新对象实现方法
最近要做一个可视化的SQL语句生成功能视图, 项目中遇到一个JSON保存后还原的问题,由于保存之前和后台沟通约定好保存的JSON格式,所以在还原的时候,就要按照保存的格式来进行逆向解析. 首先来看一下 ...
- jsonobject json对象里面_将json字符串转为json对象,从对象中取需要的数据
说明:有时候需要取json字符串中的某个键对应的值,这个时候有两个方案: 1.遍历json字符串,取需要的键对应的值.(太慢太繁琐太傻): 2.将json字符串转为json对象,从对象中取(方便): ...
- JS实现数组每次只显示5条数据,首尾相连显示
JS实现数组每次只显示5条数据,首尾相连显示 今天朋友问我,如何点击一个按钮,每次只展示数组中的五条数据,如果数据有13条,默认展示数组1-5,点第一次为6-10,第二次为11-13,第三次从头再来 ...
- 数组x中数据复制到数组y中,重复的数据只存储一次,最后输出y;计算x中数据的平均值ave及大于平均值的元素个数n。c++实现
题目描述 编程序,实现如下功能: (1)定义两个一维数组x,y,不超过50个元素. (2)从键盘输入k个整数到数组x中. (3)计算x中数据的平均值ave及大于平均值的元素个数n并输出. (4)将数组 ...
- python创建对象_对Python中9种生成新对象的方法总结
先定义一个类: class Point: def __init__(self, x, y): self.x = x self.y = y 下面我们使用9种方法来生成新的对象: point1 = Poi ...
- pandas生成新的累加数据列、pandas生成新的累加数据列(数据列中包含NaN的情况)、pandas计算整个dataframe的所有数据列的累加
pandas生成新的累加数据列.pandas生成新的累加数据列(数据列中包含NaN的情况).pandas计算整个dataframe的所有数据列的累加 目录
- js 合并数组对象,相同键的求和。合并数组对象中的相同项,并统计数量和
代码: var list=[{price:1000,amount:1 },{price:1500,amount:3 },{price:1000,amount:1 },{price:1200,amoun ...
- JS合并数组对象中重复数据
别人的问题,想着不难,自己敲一下...没想到啊没想到...一个小小的数组重组数据,搞了两个小时..... 还是水平太差了...是水平太差了...水平太差了...平太差了...太差了...差了...了. ...
最新文章
- Stack Overflow 2016 最新架构探秘
- QT程序拷贝 转移 改变运行环境
- 转: hibernate配置文件hibernate.cfg.xml和.hbm.xml的详细解释
- TensorFlow1.1搭建自编码网络
- matlab语言常用算法程序集
- vim插件-对齐插件tabular
- Visual Studio扩展开发(VS插件)
- python画五角星代码_如何用python画一个五角星_python绘制五角形教程
- 文本搜索引擎lucene
- 软件测试处理事物一般步骤,软件设计师考试题型分析及解法经验
- Ubuntu安装中文输入法
- 运筹优化(十三)--大规模优化方法
- HCIA~以太网链路聚合与交换机堆叠、集群
- 睡眠即醒 蓝牙_如果您的Mac从睡眠中随机醒来,请尝试防止蓝牙唤醒功能 | MOS86...
- 转:人生最优策略:你发现自己的天赋了吗?
- MUI中vue的@click事件没反应
- 基于腾讯云搭建属于自己的Fiora聊天室
- 会计凭证替代BTE增强
- 零基础入门C 语言如何实现面向对象编程
- 例题5-10 UVa207-PGA Tour Prize Money(WA)