我有一个数组,想把它转换成另一个结构。
我的阵列:
["DZ|47", "DZ|48", "DZ|53", "DZ|57", "AR|202", "AR|206", "AR|213", "BY|484", "BY|485", "BY|487"]
我想把它转换成:
{"DZ":[47,48,53,57],"AR":[202,206,213],"BY":[484,485,487]}
我开始编写代码,但是......下一步是什么?
$.each(arr, function( index, value ) {
var idx = value.split('|');
//arr2[idx[0]] = arr3;
});
谢谢!
答案 0 :(得分:3)
var result = {};
$.each(arr, function( index, value ) {
var idx = value.split('|');
if(!result[idx[0]]){
result[idx[0]] = [];
}
result[idx[0]].push(idx[1]);
});
答案 1 :(得分:1)
您可以使用Array.prototype.reduce方法:
var data = ["DZ|47", "DZ|48", "DZ|53", "DZ|57", "AR|202", "AR|206", "AR|213", "BY|484", "BY|485", "BY|487"];
var result = data.reduce(function(prev, curr) {
var split = curr.split('|');
if (!prev[split[0]]) prev[split[0]] = [];
prev[split[0]].push(split[1]);
return prev;
}, {});
alert(JSON.stringify(result));