javascript - 将数组分组到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 ...
}
解决方案
编辑 - 刚刚注意到您的数据格式 - 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 不会将其与代码块混淆。
推荐阅读
- sql-server - 在 VCores 环境中启用 MEMORY_OPTIMIZED 表
- node.js - 我应该如何在 Google App Engine 中构建 API 和前端应用程序?
- php - 在收到请求时在 Yii2 中的 $_POST 中设置值?
- ruby-on-rails - 如何在rails中获得重复的月份和年份匹配记录?
- html - 内容溢出:标题 div 的自动高度为高
- python - 加载 json 文件中的字符 'u'
- android - 软键盘按了上面的按钮。如何解决?
- assembly - 汇编 x8086 交换数组值
- push-notification - IBM MFP 8 推送通知休息 API 示例
- java - 刷新 DataOutputStream 后 DataInputStream 未接收到数据