我想知道如何在对象中添加现有的匹配值并在 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)
此外,只是一个快速的建议,尝试使用 const
和 let
而不是 var
!
关于javascript - 如何使用javascript覆盖现有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55348713/