ES6复制属性以仅在它们已经存在时定位

Dan*_*Dan 3 javascript ecmascript-6

本质上是我想要的

let schema = {
       name: null,
       lastname: null
    }

let values = {
       name: "John",
       unwanted: "haxor"
    }
Run Code Online (Sandbox Code Playgroud)

最终出现在:

console.log(sanitized); // {name: "John", lastname: null}
Run Code Online (Sandbox Code Playgroud)

-

使用Object.assign(schema, values)最终会带来不必要的价值。

有没有简单的方法?

编辑:我应该补充,这是为了避免使用像lodash或下划线之类的库,因此,如果解决方案过于复杂,则它们将是首选解决方案。

Ber*_*rgi 5

没有内置的方法可以达到此目的。但是,有一种简单(几乎不重要)的方法:

const sanitized = {};
for (const p in schema)
    sanitized[p] = (p in object ? object : schema)[p];
Run Code Online (Sandbox Code Playgroud)