Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var result = updateObj(objList, newObjList);
- console.log(result);
- function updateObj(list, newObjList){
- var flatarr = list.map(e=>Object.entries(e).map(([k, val]) => val)).flat(3);
- var filterService = newObjList.filter(e=>e.name=="service");
- //got stuck
- }
- var newObjList=[{
- "id": "service",
- "name": "bank",
- "amount": 2000
- },{
- "id": "service",
- "name": "credit",
- "amount": 5000
- }]
- var objList=[
- {
- "btob": [{
- "id": "service",
- "name": "bank",
- "amount": 1000
- },{
- "id": "fund",
- "name": "bank",
- "amount": 2000
- },{
- "id": "others",
- "name": "bank",
- "amount": 5000
- }]
- },{
- "ctob":[{
- "id": "service",
- "name": "credit",
- "amount": 1000,
- "rate": 0.4
- },{
- "id": "fund",
- "name": "credit",
- "amount": 3000,
- "rate": 0.2
- },{
- "id": "others",
- "name": "credit",
- "amount": 4000,
- "rate": 0.6
- }]
- }]
- }]
- var result=[
- {
- "btob": [{
- "id": "service",
- "name": "bank",
- "amount": 2000
- },{
- "id": "fund",
- "name": "bank",
- "amount": 2000
- },{
- "id": "others",
- "name": "bank",
- "amount": 5000
- }]
- },{
- "ctob":[{
- "id": "service",
- "name": "credit",
- "amount": 5000,
- "rate": 0.4
- },{
- "id": "fund",
- "name": "credit",
- "amount": 3000,
- "rate": 0.2
- },{
- "id": "others",
- "name": "credit",
- "amount": 4000,
- "rate": 0.6
- }]
- }]
- }]
- var flatList = objList.flatMap(obj => obj["btob"] || obj["ctob"]);
- newObjList.forEach(newObj => flatList
- .filter(obj => obj.id == newObj.id && obj.name == newObj.name)
- .forEach(obj => Object.keys(newObj).forEach(key => obj[key] = newObj[key])));
- objList.forEach(items => {
- items.forEach(item => {
- newObj.some(entry => {
- if (item.id === entry.id && item.name === entry.name) {
- item.amount = entry amount;
- return true; //Break the inner loop (if no duplicate entries expected in objList)
- }
- })
- })
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement