javascript |数组转换

时间:2015-04-01 07:30:20

标签: javascript jquery arrays

我有一个数组,想把它转换成另一个结构。

我的阵列:

["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;
});

谢谢!

2 个答案:

答案 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));