javascript - 将数组对象转换为对象javascript
问题描述
我有一个对象包括数组的数组,如下所示
objArray= { hh:[['a','b'],['c','d']],jj:[['x','y'],['z','w']]}
我想要在这里将数组更改为对象:
转换对象
{
hh:[
{id:'a', name:'b'},
{id:'c', name:'d'}
],
jj:[
{id:'x', name:'y'},
{id:'z', name:'w'}
],
}
我写了 2 个函数来做到这一点,但它需要一点改变
function convertToObjects(arr) {
return Object.values(arr).map(e => {
return { id: e[0], name: e[1] };
});
}
function convertChoicesToObjects(choicesArray) {
return Object.keys(choicesArray).map((key) => (convertToObjects(choicesArray[key])));
}
const convertedObject=convertChoicesToObjects(objArray)
我的函数输出是:
{
0:[
{id:'a', name:'b'},
{id:'c', name:'d'}
],
1:[
{id:'x', name:'y'},
{id:'z', name:'w'}
],
}
解决方案
你可以使用map
和forEach
方法。
objArray= { a:[['a','b'],['c','d']],b:[['x','y'],['z','w']]}
Object.keys(objArray).forEach((key) => {
objArray[key] = objArray[key].map(([id, name]) => ({id, name}));
});
console.log(objArray);
推荐阅读
- r - 如何将已计算的标准误差值添加到条形图 (ggplot) 中的每个条形?
- getstream-io - Stream.io 聊天 API - queryChannels 响应中省略了成员状态
- c++ - vector::_M_range_check: __n (即 1886417008) >= this->size() (即 256)
- python - 从 PHP 执行 Python 脚本并保持脚本打开
- r - 哪些 tidyverse 函数返回小标题?
- java - how to find the angle of reflection of the beam from the line
- c++ - 字符串类中的字符串(const char *)构造函数内存泄漏
- python - Python Movie.py - 如何处理(解除分配/关闭)不再使用的剪辑?
- javascript - chrome javascript分析中的“系统”
- laravel - Laravel 身份验证为什么我从其他模型或数据库表中获取数据但在模型本身中却不能?