javascript - 如何使用 es6 或 lodash 将对象中的对象转换为数组

标签 javascript ecmascript-6 lodash

我尝试做这个对象

obj={ 
    a:{ 1:"x", 2:"c"}, 
    b:{ 1:"v", 2:"b" }, 
    c:{ 4:"n", 2:"k" } 
}

 obj=[
    0:{group:"a" ,1:"x"},
    1:{group:"a", 2:"c"},
    2:{group:"b",1:"v"},
    3:...]

最佳答案

您可以使用Object.entries()将对象转换为数组。使用 .reduce().concat()map() 构造新数组

let obj = {
  a: {
    1: "x",
    2: "c"
  },
  b: {
    1: "v",
    2: "b"
  },
  c: {
    4: "n",
    2: "k"
  }
}


let result = Object.entries(obj)
                   .reduce((c, [k, v]) => c.concat(Object.entries(v).map(o => ({group: k,[o[0]]: o[1]}))), [])

console.log(result);

关于javascript - 如何使用 es6 或 lodash 将对象中的对象转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52689653/

相关文章:

javascript - 在 Phonegap 中读取本地文件

javascript - 未创建 SQLITE 数据库 - PhoneGap

javascript - yield [] 和 yield all() 的区别 - ES6/redux-saga

javascript - ES6解构函数参数-命名根对象

javascript - 使用从内部函数返回的异步数据返回外部函数的 promise

Javascript - 按两个日期属性排序对象数组

javascript - 工具提示内的任何 HTML 标记都会导致基本工具提示在悬停时关闭

javascript - 你如何让 javascript promise 与 node + express 一起工作并显示在 EJS 文件上?

javascript - 在 Javascript 中比较两个对象数组与文字值的更快方法

javascript - 了解如何在 vanilla JavaScript 中实现 lodash 的 _.flowRight