首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据键更新数组中嵌套对象的值

根据键更新数组中嵌套对象的值
EN

Stack Overflow用户
提问于 2021-10-09 12:53:43
回答 4查看 58关注 0票数 0

我有两个像下面这样的对象数组,我正在尝试比较两个数组,并在id与arr2匹配的情况下更新arr1的对象总值。

代码语言:javascript
运行
复制
const arr1 = [
{
  id: 1,
  value: { total: 0 },
},
{
  id: 2,
  value: { total: 0 },
},
{
  id: 3,
  value: { total: 0 },
},
 id: 4,
  value: { total: 0 },
},
];

const arr2 = [
    {
      id: 2,
      value: 3 ,
    },
    {
      id: 3,
      value: 5,
    },

  ];

我正在尝试比较两个数组,并在id与arr2匹配的情况下更新arr1的对象总值

预期结果为

代码语言:javascript
运行
复制
const arr1 = [
 {
  id: 1,
 value: { total: 0 },
 },
{
id: 2,
value: { total: 3 },
},
{
 id: 3,
 value: { total: 5 },
 },
 {
  id: 4,
  value: { total: 0 },
 },
 ];

我已经尝试了下面的代码,

代码语言:javascript
运行
复制
arr1.map((item) => {
arr2.find((element) => {
  if (element.id === item.id ) {
    item = {
      ...item,
      value: {
        ...item.value,
        total: item.value.total + element.value,
      },
    };
    console.log(item);
  }
});
return item;
});
EN

Stack Overflow用户

发布于 2021-10-09 13:07:07

你可以这样做:

代码语言:javascript
运行
复制
arr2.map((x) => {
  let result = arr1.filter((a1) => a1.id === x.id);
  if (result.length > 0) {
    x.total = result[0].total;
  }
  return x;
});
票数 -1
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69506908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档