扩展运算符不适用于以字符串为键的对象

kni*_*gge 4 javascript javascript-objects ecmascript-6

我正在使用 ES6 和 Babel(es2015 预设)编写一些代码 atm,但我无法像以前那样传播一个对象。通常我会采用一个对象,使用展开并映射内部内容,例如[...someObject].map(dosomestuff). 但我的一个对象的行为并不符合预期,到目前为止我发现的唯一区别是键:

let myObject = {
  'key': content,
  'key2': content,
  'key3': content
};

let array = [...myObject];
Run Code Online (Sandbox Code Playgroud)

由于对象是从文件结构生成的,因此键由变量组成,并且可以包含特殊字符,因此我需要将它们设置为object[key] = value. 为什么我不能在该对象上使用扩展运算符(数组始终为空)?是否有一种像扩展运算符一样舒适的解决方法(我并不是说用 Object.keys 创建一个新数组并使用它)

Sag*_*b.g 6

该对象spread适用于 bojects,您不能将对象传播到array.

你应该将spread它转移到另一个对象:

let myObject = {
  'key': "content1",
  'key2': "content2",
  'key3': "content3"
};

let myObject2 = {
  'key4': 'content4'
}

let newObj= {...myObject, ...myObject2};
console.log(newObj);
Run Code Online (Sandbox Code Playgroud)

这不是 ES6 的一部分,但处于第 3 阶段