【发布时间】:2017-04-04 02:21:12
【问题描述】:
const _ = require('lodash');
const tst = {
a: 'A',
b: 'B',
c: 'C',
d: 'D',
e: {
f: 'F',
g: 'G'
}
};
const tst2 = {
e: {
f: 'FF'
},
c: 'CC',
h: 'HH'
}
console.log(_.assign(tst, tst2));
// { a: 'A', b: 'B', c: 'CC', d: 'D', e: { f: 'FF' }, h: 'HH' }
Object.assign(tst, tst2);
console.log(tst); // same with above result.
console.log(_.merge(tst, tst2));
// { a: 'A', b: 'B', c: 'CC', d: 'D', e: { f: 'FF', g: 'G' }, h: 'HH' }
我怎样才能得到结果
{ a: 'A', b: 'B', c: 'CC', d: 'D', e: { f: 'FF', g: 'G' } } ?
这意味着,我想获取更新的 tst 对象。仅 tst 当前键。 assign 方法不仅存在深拷贝问题,而且还存在不必要的 key (h) 问题。 合并方法看起来很合适,但包含了不必要的键(h 键)。 我现在可以使用我制作的其他附加方法来处理这个问题。
我想知道我错过了在函数调用中使用一个内置(lodash 或 es6)实现的函数,例如
console.log(someFunction(tst, tst2));
// { a: 'A', b: 'B', c: 'CC', d: 'D', e: { f: 'FF', g: 'G' } }
【问题讨论】:
-
不,不行。它仍然打印'h'键我不想要'h'键
-
荒谬的感叹号,没有显示你通过一种 lodash 方法尝试过的内容,并说你不想在没有解释的情况下使用任何附加功能是什么让我这个问题质量太低保持开放。也许你可以解决其中的一些问题。
-
嗯,好的,我会解决的
标签: javascript ecmascript-6 lodash