javascript - 将对象映射到数组

标签 javascript mapping

给定这样一个对象:

{
  aaa: {
    text: "Text1",
    path: "Path1",
    type: "Type1"
  },
  bbb: {
    text: "Text2",
    path: "Path2",
    type: "Type2"
  },
...
}

返回这个数组最简单的方法是什么:

[
   {value: "aaa", label: "Text1"},
   {value: "bbb", label: "Text2"}
]

我必须遍历对象吗?我认为 Object.keys()Object.values()

可能有办法

最佳答案

您可以使用Object.entries 将对象转换为数组。使用 map 循环并返回所需的对象。

let obj = {
  aaa: {
    text: "Text1",
    path: "Path1",
    type: "Type1"
  },
  bbb: {
    text: "Text2",
    path: "Path2",
    type: "Type2"
  },
}

let result = Object.entries(obj).map(([k, v]) => ({value: k,label: v.text}));

console.log(result);

关于javascript - 将对象映射到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55712013/

相关文章:

javascript - 如何使用jquery隐藏表格元素并隐藏bootstrap类

javascript - Zend Framework - 使用 javascript 添加新的输入元素

javascript - 有没有办法在一行中根据要求创建一个新的 Node 对象?

java - JOOQ 中的 POJO 映射与参数顺序无关

c# - 自动映射错误: The type does not have a default constructor

javascript - 使用node.js和backbone.js将单页面应用程序转换为多页面网站

javascript - 在netsuite中,如何为保存的搜索中不存在的选定记录编写curl脚本?

c - 重复文件查找算法的建议(使用 C)

vim - 如何在 vim 中重新映射 ctrl-shift-left 鼠标?

elasticsearch - ElasticSearch:如何设置到模板的默认映射