【问题标题】:How can I convert Array of Objects into Array of Array of Array如何将对象数组转换为数组数组
【发布时间】:2020-03-28 08:16:22
【问题描述】:

大家好,我是 javascript 的初学者,我正在尝试将对象数组转换为数组数组。我尝试了一些方法,例如 Object.entries。但我没有得到预期的输出。如果有人帮助 这对我真的很有帮助。任何形式的帮助都将不胜感激。在此先感谢....

My Input:

  var data=[
           {name:'TOYA',price:34},
           {name:'TOYB',price:24},
           {name:'TOYC',price:444},
           {name:'TOYD',price:54}
        ];


Expected Output:

   var data=[
           ['TOYA',34],
           ['TOYB',24],
           ['TOYC',444],
           ['TOYD',54]
        ];
     
 But I got:
 
[ [ '0', { name: 'TOYA', price: 34 } ],
  [ '1', { name: 'TOYB', price: 24 } ],
  [ '2', { name: 'TOYC', price: 444 } ],
  [ '3', { name: 'TOYD', price: 54 } ] ]
  
 using Object.entries(data);

【问题讨论】:

  • [name:'c++',price:34] 不是有效的 javascript,因此您无法使用任何代码
  • 假设您的意思是[["name", "c++"], ["price", 34]],我对吗?
  • 所以,你想要的是一个数组数组......而不是数组数组
  • 你需要使用Object.values,看我的回答。

标签: javascript object ecmascript-6 arrayofarrays


【解决方案1】:

请改用Object.values

var data=[
     {name:'TOYA',price:34},
     {name:'TOYB',price:24},
     {name:'TOYC',price:444},
     {name:'TOYD',price:54}
];

var newdata = [];
for (let obj of data) {
  newdata.push(Object.values(obj));
}
console.log(newdata)

【讨论】:

  • @LearnforFun - 我看到你发现了问题
【解决方案2】:

var data=[
           {name:'c++',price:34},
           {name:'java',price:24},
           {name:'python',price:444},
           {name:'php',price:54}
        ];


var result = Object.values(data).map(v => Object.values(v));
console.log(result)

【讨论】:

  • 非常抱歉给您带来不便。我已经更改了我的预期输出。
  • @VigneshRaviKumar - 代码现在可以按您的需要运行
【解决方案3】:

你可以使用 Object.values(arrayElement)

[{name:'c++',price:34},{name:'java',price:24},{name:'python',price:444},       {name:'php',price:54}].map((e)=>{return [Object.values(e)]})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-21
    • 2018-10-13
    • 2019-04-13
    • 2018-11-08
    相关资源
    最近更新 更多