javascript - JavaScript:重组和对象数组
问题描述
我从如下所示的 API 获取数据:
desserts: [
{
name: ["Frozen Yohurt", "Ice cream Sandwich", "Egg"],
calories: [159, 237, 109]
},
我的组件(Vuetify Datatable)期望数据采用完全不同的形式,如下所示:
desserts: [
{ name: "Frozen Yogurt", calories: 159},
{ name: "Ice cream sandwich", calories: 237 },
{name: "Egg", calories: 109 }
],
我无法解决它。这(从两个数组创建一个 JavaScript 对象)看起来非常相似,但给出了不同的结果。谁能帮我?
解决方案
您可以使用中的 index 参数Array#map
。Array#flatMap
可以使用,因此它适用于数组中的任意数量的对象。
let arr = [
{
name: ["Frozen Yohurt", "Ice cream Sandwich", "Egg"],
calories: [159, 237, 109]
}
];
let res = arr.flatMap(({name,calories}) =>
name.map((name,idx)=>({name,calories:calories[idx]})));
console.log(res);
推荐阅读
- reactjs - 无法读取未定义的属性“地图”,但我实际上可以在控制台中看到数据
- git - 如何列出当前正在验证的拉取请求中更改的所有文件(在 VSTS 中)?
- javascript - 获取 Ajax 调用未命中控制器操作
- php - 连接 Webserver 到 swift 以调整音量
- angular - Ionic ngFor 当我从另一个页面返回原始页面时复制项目
- html - 如何通过 CSS 将 div 附加到页面顶部?
- python - 为什么 pygame.KEYUP 事件在 key 没有被释放的时候触发?
- grails-2.0 - 有时 flash.message 显示,有时不显示
- json - JSON Where 子句过滤器使用 Newtonsoft.Json.Linq
- sql - 在我看来,列中显示了错误的值。我究竟做错了什么?