id相同,ass里的数据根据 id相同,unicode 相同 ,把pearPlanFlag有属性的值加到第一个id出现的情况
const a = [ { id: 3889, ass: [ { unicode: 111, uniname: "上海", budgetMoney: 200 , pearPlanFlag: true}, { unicode: 222, uniname: "山西", budgetMoney: 600 , pearPlanFlag: false}, { unicode: 333, uniname: "江西", budgetMoney: 200 , }, ], }, { id: 3889, ass: [ { unicode: 111, uniname: "上海", budgetMoney: 200 }, { unicode: 222, uniname: "山西", budgetMoney: 600 }, { unicode: 333, uniname: "江西", budgetMoney: 200 , pearPlanFlag: true}, ], }, { id: 4000, ass: [ { unicode: 111, uniname: "上海", budgetMoney: 200 , pearPlanFlag: true}, { unicode: 222, uniname: "山西", budgetMoney: 600 }, { unicode: 333, uniname: "江西", budgetMoney: 200 }, ], }, { id: 4000, ass: [ { unicode: 111, uniname: "上海", budgetMoney: 200 }, { unicode: 222, uniname: "山西", budgetMoney: 600 , pearPlanFlag: false}, { unicode: 333, uniname: "江西", budgetMoney: 200 }, ], }, { id: 4000, ass: [ { unicode: 111, uniname: "上海", budgetMoney: 200 }, { unicode: 222, uniname: "山西", budgetMoney: 600 }, { unicode: 333, uniname: "江西", budgetMoney: 200 , pearPlanFlag: true}, ], }];
const a1 = [ { id: 3889, ass: [ { unicode: 111, uniname: "上海", budgetMoney: 200 , pearPlanFlag: true}, { unicode: 222, uniname: "山西", budgetMoney: 600 , pearPlanFlag: false}, { unicode: 333, uniname: "江西", budgetMoney: 200 , pearPlanFlag: true }, ], }, { id: 3889, ass: [ { unicode: 111, uniname: "上海", budgetMoney: 200 }, { unicode: 222, uniname: "山西", budgetMoney: 600 }, { unicode: 333, uniname: "江西", budgetMoney: 200 }, ], }, { id: 4000, ass: [ { unicode: 111, uniname: "上海", budgetMoney: 200 , pearPlanFlag: true}, { unicode: 222, uniname: "山西", budgetMoney: 600 , pearPlanFlag: false}, { unicode: 333, uniname: "江西", budgetMoney: 200 , pearPlanFlag: true}, ], }, { id: 4000, ass: [ { unicode: 111, uniname: "上海", budgetMoney: 200 }, { unicode: 222, uniname: "山西", budgetMoney: 600 }, { unicode: 333, uniname: "江西", budgetMoney: 200 }, ], }, { id: 4000, ass: [ { unicode: 111, uniname: "上海", budgetMoney: 200 }, { unicode: 222, uniname: "山西", budgetMoney: 600 }, { unicode: 333, uniname: "江西", budgetMoney: 200 }, ], }];
Object.values(a.reduce((obj, {id, ass}) => { let arr = obj[id] ??= {'': []}; arr[''].push({id, ass: ass.map(({pearPlanFlag: v, ...rest}) => { (arr[rest.unicode] ??= rest).pearPlanFlag ??= v; return rest; })}); return obj;}, {})).flatMap(i => i['']);
function transform(arr) { const ret = [], cache = {}; for (let i = 0; i < arr.length; ++i) { const { id, ass } = arr[i]; const _ass = (cache[id] ??= {}); ret[i] = { ...arr[i], ass: [] }; for (let j = 0; j < ass.length; ++j) { const item = ret[i].ass[j] = { ...ass[j] }; const { unicode, pearPlanFlag } = item; const _item = _ass[unicode]; if (!_item) { _ass[unicode] = item; } else if (pearPlanFlag != null) { if (_item.pearPlanFlag == null) { _item.pearPlanFlag = pearPlanFlag; } delete item.pearPlanFlag; } } } return ret;}console.log(transform(a));
function processArray(a) { return a.map(item => { const hasTrueFlag = item.ass.some(assItem => assItem.pearPlanFlag === true); item.ass = item.ass.map(assItem => { assItem.pearPlanFlag = hasTrueFlag; return assItem; }); return item; });}const a1 = processArray(a);
js:求一个数据处理方法,例如上述例子, tableList处理之后,可以得到 之前有如下方案 但是不能兼容account.t_sub_account_.*的场景,哪位大佬可以帮忙完善下吗?
学习js事件时,有三种不同的写法, 第一种 第二种 第三种 我想实现一下点击事件的防抖效果,但是直接在button标签中加点击事件没有效果。 第一个问题:第一种写法哪里有问题?应该怎么改正? 第二个问题:这三种写法是不是在运行的时候有区别?区别是什么? 希望有人解答一下
我现在是将方法A定义在被写入的文件里,然后 {a:'${A}'},在写入之前将'${}',给删了;但有没有简洁一点的方法呢? process 如何编写?
我刚刚开始使用node.js中的level模块学习level.db。 但这段代码给出了以下 错误[WriteError]:必须是C:\users\mathe\desktoph\leveldb-and-crypto\node_modules\levelup\lib\levelup.js:274:23 有人能告诉我哪里不对劲吗?
本文向大家介绍JS 对java返回的json格式的数据处理方法,包括了JS 对java返回的json格式的数据处理方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇JS 对java返回的json格式的数据处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
用户勾选某一个分类,一次性查询该分类里的所有商品信息,并创建价格任务。 业务员在价格操作的时候,对刚才创建的所有商品信息进行价格操作,根据基准价做涨幅,每个商品都有不同的基准价,现在的问题就是数据量太大,如果一次性操作一万条商品数据,还要根据基准价做涨幅,有什么好的方法?前端如果展示的话,每条商品的涨幅后价格都要显示,请问该怎么操作比较好,后端这边应该怎么进行处理大批量的数据?