【发布时间】:2021-03-08 08:20:21
【问题描述】:
这是我的第一个对象
const initialValues = {
prenom: "anne",
nom: "dupont",
age: 24
}
这是我的第二个对象
const newValues = {
prenom: "anne",
nom: "duclos",
age: 25
}
我想要的是在比较这两个对象时,newValues 将只包含与 initialValues 不同的属性。 它会返回:
newValues = {
nom: "duclos",
age: 25
}
到目前为止,我能做到的事情如下:
const initialValues = {
prenom: "anne",
nom: "dupont",
age: 24
}
const newValues = {
prenom: "anne",
nom: "duclos",
age: 25
}
function keepChangedValues(object1, object2) {
const keys1 = Object.keys(object1);
const keys2 = Object.keys(object2);
for (let key of keys1) {
if (object1[key] === object2[key]) {
//delete this propreties from newValues
}
}
}
keppChangedValues(initialValues, newValues)
感谢您的帮助!
【问题讨论】:
-
您的意思是要创建第三个对象,其属性与前两个对象不同?
-
不完全是。我想保留 newValues 对象但更改他的属性。不创建第三个对象。不知道有没有可能。
-
所以你想
deletenewValues中已经存在的所有属性在initialValues中具有相同的值? -
JSON.stringify(obj1) === JSON.stringify(obj2) 试试这个
标签: javascript object