在我们的项目中,我们以下列格式从DB获取数据。
[
[
"ClearDB",
"test1@test.com",
"com.test.cleardb"
],
[
"Cricbuzz",
"test2@test.com",
"com.test.cricbuzz"
],
[
"Hangout",
"test3@test.com",
"com.test.hangout"
]
]
我希望这个键值格式如下所述
[
{
"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"
}
]
请提供一个正确的方法来实现这一点。
答案 0 :(得分: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;
}));
<强>输出强>
[ { 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' } ]
答案 1 :(得分:4)
Array.prototype.map
:
var results = db.map(function (v) {
return {
projname: v[0],
projmanager: v[1],
package: v[2]
};
});
答案 2 :(得分:1)
如果
var array =[
[
"ClearDB",
"test1@test.com",
"com.test.cleardb"
],
[
"Cricbuzz",
"test2@test.com",
"com.test.cricbuzz"
],
[
"Hangout",
"test3@test.com",
"com.test.hangout"
]
];
然后
var obj = [];
array.each(function(item){ obj.push({"projname": item[0],
"projmanager":item[1],
"package": item[2]})
});
修改强>
使用Jquery
var obj = [];
$.each(array,function(key,value){ obj.push({"projname": value[0],
"projmanager":value[1],
"package": value[2]})
});
使用javascript
var obj = [];
array.forEach(function(item){ obj.push({"projname": item[0],
"projmanager":item[1],
"package": item[2]})
});
答案 3 :(得分:1)
假设您从数据库获取的数据存储在变量&#39; abc&#39;
var abc = [];
var output = [];
for(var i = 0; i< abc.length; i++){
output[i] = {};
output[i].projname = abc[i][0];
output[i].projmanager = abc[i][1];
output[i].package = abc[i][2];
}
注意:&#39; abc&#39;是您从DB存储数据的变量。
答案 4 :(得分:1)
在ES6中:
input . map(([projname, projmanager, package]) => ({projname, projmanager, package}));
[]
中的部分将参数解构为map
,这是子阵列之一,将第一个元素分配给projname
,依此类推。 {}
中的部分创建并返回一个对象,其关键字为'projname'
,其值为projname
等。
如果要概括它以使用任何字段名称数组(['projname', 'projmanager', 'package']
):
input . map(
values =>
values . reduce(
(result, value, i) => {
result[fieldnames[i]] = value;
return result;
},
{}
)
);