js数据结构组织

需要实现的数据结构:const data = [{...},{...},...];

// 现在有二维数组 arrays
arrays = [[1,2,3],[4,5,6],[7,8,9],[10,11,12]];
// 现有key数组 keys
keys = ['a','b','c'];

问题:如何将上面的数据组合成如下的形式?

data = [{a:1,b:2,c:3},{a:4,b:5,c:6},{a:7,b:8,c:9},{a:10,b:11,c:12}];
阅读 2.3k
4 个回答

keys数组里面的值要这样写才行:keys = ['a', 'b', 'c'],否则a,b,c是变量

data = arrays.map(arr => {
    let item = {}
    arr.forEach((value, index) => {
        item[keys[index]] = value
    })
    return item
})

如果能保证如此的结构的话

arrays.map(item => {
    let rt = {}
    keys.forEach((key, idx) => {
        rt[key] = item[idx]
    })
    return rt
})

反正楼上已有答案了,我这菜鸟就来写个es5的来练练手

for (var i = 0; i < arrays.length; i++) {
  var obj = {};
  for (var j = 0; j < keys.length; j++) {
    obj[j] = arrays[i][j];
  }
  data.push(obj);
}
 var data = arrays.map(item => {
        const obj = {};
        for(let i = 0; i < keys.length; i++){
           obj[keys[i]] = item[i];
        }
       return obj;
     })
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题