javascript - 为什么没有为以下克隆数组正确设置索引?

标签 javascript

我正在尝试克隆一个数组,重置索引(0, 1, 3 ...)并将该数组保存在 buildingsPayload 变量中:

console.log('1:', this.buildings)

const buildingsPayload = this.buildings.map((building, index) => {
  return Object.assign({ index: index }, building)
})

console.log('2:', buildingsPayload)

console.log('1') 中的索引为:

[
  { index: 0 },
  { index: 0 },
  { index: 1 }
]

console.log('2') 中的索引也是:

[
  { index: 0 },
  { index: 0 },
  { index: 1 }
]

如何修改此代码,使 buildingsPayload 最终如下:

[
  { index: 0 },
  { index: 1 },
  { index: 2 }
]

最佳答案

后面的对象的键会覆盖Object.assign中较早对象的键,因此需要指定{index:index}last:

const buildingsPayload = this.buildings.map((building, index) =>
  Object.assign({}, building, { index: index }))

关于javascript - 为什么没有为以下克隆数组正确设置索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44838380/

相关文章:

javascript - HTML5 localStorage : Big JSON, 特定值作为更改 CSS 的条件(收藏夹列表)

javascript - 在脚本 package.json 上运行下一个任务之前等待几秒钟

JavaScript 滚动顶部不工作

javascript - html页面是如何按顺序渲染的?

javascript - 必应视频搜索 API 401 : Access denied due to missing subscription key

javascript - 如何根据内容的长度使 div 可扩展?

javascript - 如何将函数 A 的返回对象作为参数传递给函数 B?

javascript - TinyMCE - 图像大小属性问题 IE10 - Twitter Bootstrap

javascript - AngularJS指令: Attaching a function from the controller to ng-click

javascript - Firebase 的云功能 : serializing Promises