首页 > 解决方案 > 将数组分组到javascript中的对象

问题描述

您好,抱歉,如果之前有人问过这个问题,但我无法搜索正确的术语来找到有用的东西。

假设如果我有一个数组

[
 "0.001234", "2021-07-14 08:24:30"
 "0.001245", "2021-07-14 01:04:24"
 // etc etc ...
]

我将如何将其更改为这样的对象?

{
 0: ["0.001234", "2021-07-14 08:24:30"]
 1: ["0.001245", "2021-07-14 01:04:24"]
 // etc etc ...
}

标签: javascript

解决方案


编辑 - 刚刚注意到您的数据格式 - map reduce 可能对您不起作用,但仍然是类似的原理:

let objForm = {}
for (let idx=0; idx<arrayForm.length; idx+=2) {
  objForm[idx/2] = [ arrayForm[idx], arrayForm[idx+1] ]
}

老答案:

您可以使用reduce模式。

let arrayForm = ["one", "two"]
let objForm = arrayForm.reduce((acc, val, idx) => ({
  ...acc,
  [idx]: val
}), {})
console.log(objForm) // { 0: "one", 1: "two" }

reduce方法获取累加值、当前值和数组索引。在这种情况下,我们使用扩展运算符将下一个值添加到对象。

请注意,(对象定义之前需要,以便 JS 不会将其与代码块混淆。


推荐阅读