javascript - 如何使用javascript覆盖现有对象

标签 javascript jquery arrays object

我想知道如何在对象中添加现有的匹配值并在 javascript 中添加剩余的值 例如,我需要将 merge_obj 与具有 id '1' 的 my_obj 合并,匹配值 targetAmount 仅替换,其余属性需要添加

我试过了

var filtervalue = my_obj.filter((e)=>e.id == "1").map((e)=>Object.assign({},e[0], merge_obj));

const merge_obj = {
  targetAmount: 50688.97,
  type: "REGULAR"
}

const my_obj = [
  {
    id: "1",
    logo: "img1.png",
    name: "fund",
    speed: "1 Days",
    targetAmount: "2000"
  },
  {
    id: "2",
    logo: "img2.png",
    name: "transfer",
    speed: "1 Days",
    targetAmount: "3000"
  },
]


Expected Output:
var my_obj = [
{
    id: "1",
    logo: "img1.png",
    name: "fund",
    speed: "1 Days",
    targetAmount: 50688.97,
    type: "REGULAR",
  },
  {
    id: "2",
    logo: "img2.png",
    name: "transfer",
    speed: "1 Days",
    targetAmount: "3000",
  },
]

最佳答案

这可以通过使用 array map 方法遍历对象数组,检查 id 是否等于 '1',然后使用 ES6 的 spread syntax 来实现。 “合并”对象。

const result = my_obj.map(obj => {
  if (obj['id'] === '1') {
    return {...obj, ...merge_obj}
  } else {
    return obj;
  }
})

console.log(result)

此外,只是一个快速的建议,尝试使用 constlet 而不是 var!

关于javascript - 如何使用javascript覆盖现有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55348713/

相关文章:

javascript - 使用 jQuery/javascript 更改 html 文本

javascript - 在 Chart.js 中绘制线上的点

php - 如何使用 PHP 或 javascript 显示与用户相同时区的日期时间?

javascript - Angular 子表单字段验证

javascript - 将 Bootstrap 表单元素从一个主题复制到另一个主题

php - 对具有不同键的 2 个数组求和

python - 查找数组中下一个最大值的更快方法

arrays - Excel VBA 对象变量未设置问题,可能不正确的 Redim 使用?

javascript - 仅在处理结果列表后才需要从 $http 查询返回数据

javascript - jquery mobile 页面文本中的字符串搜索