javascript - 将嵌套的对象数组转换为对象

标签 javascript arrays

我正在尝试将嵌套数组转换为对象,我进行了多次尝试,但没有成功。

这些是我拥有的数据

[
  ['key1', { childKey1: "text" }, { childKey2: "text" }],
  ['key2', { childKey1: "text" }, { childKey2: "text" }]
]

这是我需要的数据

{
  key1: {
    childKey1: "text",
    childKey2: "text"
  },
  key2: {
    childKey1: "text",
    childKey2: "text"
  }
}

最佳答案

将数据映射到条目 - [[key, value], [key, value]]。使用destructuring获取 key (子数组中的第一项),以及 rest syntax获取对象数组。按 spreading 合并对象数组将对象数组放入 Object.assign()来获取该值。使用Object.fromEntries()将条目转换为对象。

const data = [['key1', {childKey1: "text"}, {childKey2: "text"}], ['key2', {childKey1: "text"}, {childKey2: "text"}]]

const result = Object.fromEntries(data.map(
  ([k, ...v]) => [k, Object.assign({}, ...v)]
))

console.log(result)

关于javascript - 将嵌套的对象数组转换为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59686603/

相关文章:

java - 使用java中的ArrayUtils将字符串列表转换为单个字符串

php - 移动带键 PHP 数组中的键/值

javascript - 如何引用包含对象?

javascript - 自定义输入在 jQuery token 输入插件中不起作用

有人可以解释一下这段涉及 free() 的代码实际上做了什么吗

ios - 如何从 URLSession 获取数组

javascript - 在 javascript 中创建简单过滤器函数的最佳方法是什么?

javascript - 内联 PHP 停止使用 if 函数和 javascript

javascript - 使用 Google map API 进行反向地理编码

javascript - JS挑战: Load changed text into the DOM on page reload