javascript - 根据另一个数组项更新数组对象值
问题描述
我有这个 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 }
]
解决方案
你也可以通过循环来完成。比较数组元素和 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)
推荐阅读
- html - 外观中的行空间
- c++ - 相同模板类但不同模板类型的受保护成员
- c - 将一个字符串添加到另一个字符串
- architecture - 架构驱动因素/因素与架构重要要求之间有什么区别
- java - ModelMapper 将数组属性 (get(0)) 展平为字符串?
- c# - 问题如果我第二次运行一个进程,内存使用量会增加c#
- django-rest-framework - 如何在 Django REST 框架的自定义序列化器字段中访问请求对象?
- c# - 如何使 C# 方法通用,以便它可以被不同的类使用
- asp.net-core - 迷失在身份验证中——这是什么类型的 JWT 身份验证?
- python - 在使用 selenium 抓取之前等待网页响应