[英]Javascript mapping
在我們的項目中,我們從數據庫中獲取以下格式的數據。
[
[
"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"
}
]
請為我提供實現此目標的正確方法。
您可以簡單地為每個數組創建一個新對象,並使用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' } ]
與Array.prototype.map
:
var results = db.map(function (v) {
return {
projname: v[0],
projmanager: v[1],
package: v[2]
};
});
如果
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]})
});
假設您從數據庫獲取的數據存儲在變量“ abc”中
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];
}
注意:“ abc”是用於存儲數據庫數據的變量。
在ES6中:
input . map(([projname, projmanager, package]) => ({projname, projmanager, package}));
[]
的部分將參數map
分解為map
,后者是子數組之一,將第一個元素分配給projname
,依此類推。 {}
的部分創建並返回鍵值為'projname'
的對象,其值為projname
等。
如果要對此進行概括以使用任何字段名稱數組( ['projname', 'projmanager', 'package']
):
input . map(
values =>
values . reduce(
(result, value, i) => {
result[fieldnames[i]] = value;
return result;
},
{}
)
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.