Javascript映射

Sni*_*per 1 javascript arrays

在我们的项目中,我们以下列格式从DB获取数据.

[
    [
        "ClearDB",
        "test1@test.com",
        "com.test.cleardb"
    ],
    [
        "Cricbuzz",
        "test2@test.com",
        "com.test.cricbuzz"
    ],
    [
        "Hangout",
        "test3@test.com",
        "com.test.hangout"
    ]
]
Run Code Online (Sandbox Code Playgroud)

我希望这个键值格式如下所述

[
    {
        "projname": "ClearDB",
        "projmanager": "test1@test.com",
        "package": "com.test.cleardb"
    },
    {
        "projname": "Cricbuzz",
        "projmanager": "test2@test.com",
        "package": "com.test.cricbuzz"
    },
    {
        "projname": "Hangout",
        "projmanager": "test3@test.com",
        "package": "com.test.hangout"
    }
]
Run Code Online (Sandbox Code Playgroud)

请提供一个正确的方法来实现这一点.

the*_*eye 6

您可以简单地为每个数组创建一个新对象,并创建一个具有map函数的对象数组,如下所示

var keys = ["projname", "projmanager", "package"];

console.log(data.map(function (arr) {
  var obj = {};
  keys.forEach(function (key, idx) { obj[key] = arr[idx]; });
  return obj;
}));
Run Code Online (Sandbox Code Playgroud)

产量

[ { projname: 'ClearDB',
    projmanager: 'test1@test.com',
    package: 'com.test.cleardb' },
  { projname: 'Cricbuzz',
    projmanager: 'test2@test.com',
    package: 'com.test.cricbuzz' },
  { projname: 'Hangout',
    projmanager: 'test3@test.com',
    package: 'com.test.hangout' } ]
Run Code Online (Sandbox Code Playgroud)