gpt4 book ai didi

javascript - 如何在javascript中将一个对象的数据复制到另一个对象并执行两个对象值的减法?

转载 作者:太空宇宙 更新时间:2023-11-03 23:11:55 27 4
gpt4 key购买 nike

我有一个用例,我需要将整个对象数据复制到另一个对象而不创建内部对象。即对象内部的对象。

例如,

obj_1 = {
"_id": "SPool",
"w1": 60,
"w2": 150
}

obj_2 = {
"_id": "SPool",
"w1": 30,
"w2": 120
}

由于两个对象具有相同的_id字段,我想将obj-2的数据复制到obj-1并希望找到两个对象之间的差异如下所示。

obj_1 = {
"_id": "SPool",
"w1": 60,
"w2": 150,
"obj_2" : {
"w1": 30,
"w2": 120
}
"diff": {
"w1": 30,
"w2": 30
}
}

可以这样做吗?

最佳答案

您应该能够使用 Array.reduce、Object.entries 等从“父”对象创建新的合并对象。

obj_1 = {
"_id": "SPool",
"w1": 60,
"w2": 150
}

obj_2 = {
"_id": "SPool",
"w1": 30,
"w2": 120
}

function mergeObjects(obj_1, obj_2, propertyName) {
let merged = { ...obj_1 };
merged[propertyName] = obj_2;
merged.diff = Object.entries(obj_1).reduce((acc, [key, value]) => {
if (obj_2[key] && typeof obj_2[key] === "number") {
acc[key] = value - obj_2[key];
}
return acc;
}, {});
return merged;
}


console.log("Merged objects:", mergeObjects(obj_1, obj_2, "obj_2"));

关于javascript - 如何在javascript中将一个对象的数据复制到另一个对象并执行两个对象值的减法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60148149/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com