首页 > 解决方案 > 根据另一个数组项更新数组对象值

问题描述

我有这个 lst,它有可用的名称和总数。

let lst = [
  { name: 'Apple', total: 4 },
  { name: 'Mango', total: 9 },
  { name: 'Orange', total: 6 },
  { name: 'Passion', total: 2 }
]

现在有一个我从 api 收到的新列表 json,它只有项目的名称,我改为这样的数组。

let newlst = ["Apple","Orange","Banana","Mango","Apple","Pineapple","Passion"]

那么我该如何处理newlst在数组中找到的每个项目,lst然后将它们的总和 +1 .... 如果没有,则跳过。

所以预期的结果是

let lst = [
  { name: 'Apple', total: 6 },
  { name: 'Mango', total: 10 },
  { name: 'Orange', total: 7 },
  { name: 'Passion', total: 3 }
]

标签: javascript

解决方案


你也可以通过循环来完成。比较数组元素和 json 对象名称,然后增加相应 json 对象的总数。

let lst = [
  { name: 'Apple', total: 4 },
  { name: 'Mango', total: 9 },
  { name: 'Orange', total: 6 },
  { name: 'Passion', total: 2 }
];
let newlst = ["Apple","Orange","Banana","Mango","Apple","Pineapple","Passion"];
for(i=0;i<lst.length;i++){
    for(j=0;j<newlst.length;j++){
         if(lst[i].name === newlst[j]){
            lst[i].total++;
          }    
    }
 }
 console.log(lst)

推荐阅读