如何将大数组的值插入ECMAScript 6中的对象

azm*_*ain 0 javascript ecmascript-6

假设一个数组是

var arr = [1,2,3,4,5,6,7,8,9,10 ...];
Run Code Online (Sandbox Code Playgroud)

一个对象是

var obj = {};
Run Code Online (Sandbox Code Playgroud)

如何将所有数组的值插入带有键的对象中.输出将是:

{
  0:1,
  1:2,
  2:3,
  3:4,
  4:5,
  5:6,
  6:7,
  7:8,
  8:9,
  9:10,
  ...
  ...
}
Run Code Online (Sandbox Code Playgroud)

T.J*_*der 7

你可以使用Object.assign(spec,MDN):

let arr = [1,2,3,4,5,6,7,8,9,10];
let obj = {};
Object.assign(obj, arr);
console.log(obj);
Run Code Online (Sandbox Code Playgroud)

这是因为标准数组根本不是数组,1和数组索引是数组的自有属性.Object.assign将自己的属性从源对象(或多个源对象)​​复制到目标对象.

由于它来自ES2015(又名"ES6"),正如您所问,它需要在旧浏览器上使用polyfill.


1 这是我贫血的小博客上的帖子.