将Javascript对象添加到另一个Javascript对象中

lem*_*mon 13 javascript

特定

options = {
 underscored: true
}

products = {
 foo: bar
}
Run Code Online (Sandbox Code Playgroud)

我想得到

products = {
 underscored: true
 foo: bar
}
Run Code Online (Sandbox Code Playgroud)

是否可以在Javascript中将对象推送到另一个对象?

Pet*_*tai 29

ES5

<script>
function mix(source, target) {
   for(var key in source) {
     if (source.hasOwnProperty(key)) {
        target[key] = source[key];
     }
   }

}

  mix(options, products);
</script>
Run Code Online (Sandbox Code Playgroud)

ES6 - 这会改变objectToMergeTo

const combinedObject = Object.assign(objectToMergeTo, source1, source2)
Run Code Online (Sandbox Code Playgroud)

ES7(带扩展运算符的语法美) - 但是这个版本创建了一个新实例,你不能用扩展运算符添加到一个对象中.

const combined = { ...source1, ...source2 }
Run Code Online (Sandbox Code Playgroud)


Ell*_*lle 5

你可以这样做:

for(var key in options) {
    products[key] = options[key];
}
Run Code Online (Sandbox Code Playgroud)

这将有效地结合两个对象的变量.