[英]quickest way to assign values of keys which are intersection in the target and source object
I want to assign only those keys which are already present in the target object and not the other keys that are done by the object.assign method.我只想分配目标 object 中已经存在的那些键,而不是 object.assign 方法完成的其他键。
example
a = { x: 2}
b = {x:3, y:4}
then result = {x:3}
I know there are other ways in past but is there any newer and better ways to do this like in one line?我知道过去还有其他方法,但是有没有更新更好的方法来做到这一点?
You can reduce the keys of the target
object to a new object by taking the values from the obj
if they exist:您可以通过从obj
中获取值(如果存在)来将target
object 的键减少为新的 object:
const fn = (target, obj) => Object.keys(target).reduce((acc, key) => key in obj? {...acc, [key]: obj[key] }: acc, {}) const a = { x: 2} const b = { x:3, y:4 } const result = fn(a, b) console.log(result)
I think the fastest way is:我认为最快的方法是:
for (let key in b) {
if (a[key] === undefined) {
delete b[key];
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.