【发布时间】:2021-11-09 15:56:52
【问题描述】:
所以,我有这两个对象:
const obj1 = {
foo: 'Foo',
bar: {
baz: 'Baz',
}
}
const obj2 = {
foo: 'Foo',
bar: {
baz: 'Baz',
zip: 'Zip'
},
}
我想从 obj2 中删除“zip”,因为它不在 obj1 中。有没有办法用 lodash 做到这一点?
编辑:如果一个属性是一个对象,那么它将是它们两者中的一个对象。不能有一个字符串与另一个对象的键相同。
用例是,我有一个翻译文件,经过一些处理,我需要删除不再需要的文件。因此,如果我在原始对象(即 obj1)中删除它们,则必须将它们从其他对象中删除(在本例中为 obj2。
【问题讨论】:
-
您是否只想将字段过滤为
obj1中可用的内容?例如obj1 = {a: 1, b: 2}和obj2 = {a: 1, c: 3}只会删除c。还有,是不是需要在对象的每一层都做? -
如果有嵌套对象,你如何处理不匹配的结构?喜欢
obj1 = { bar: "bar" }和obj2 = { bar: { baz: "baz"} }。作为一个普遍的问题,这不是微不足道的。这个问题的具体背景是什么?你的实际问题是什么? -
我刚刚更新了问题来回答你的问题,抱歉之前的歧义
-
编辑没有解决嵌套对象的问题。
-
确实如此,您不能用字符串代替对象。如果原件有字符串,则 obj2 要么有字符串,要么什么都没有。
标签: javascript lodash