Javascript将对象更改为自定义数组

时间:2016-03-29 07:07:32

标签: javascript

我想转换此对象:

"age": [
  {
     "Under 20": "14",
     "Above 40": "1"
  }
]

到此:

 $scope data =  {rows:[ 
    {c: [
        {v: "Under 20"},
        {v: 14}
    ]},
    {c: [
        {v: "Above 40"},
        {v: 1},
    ]}
 }]

我试过了:

 $.map(resp.age, (el, key) => {
        arr.push({c: [{v: el}, {v: el}]});
 });

我知道如何使用$.maparr.push,但我无法获取密钥Under 20并获取元素值14

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

这应该这样做:

function convert(arr) {
    var ages = arr["age"][0];
    return {
        'rows': Object.keys(ages).map(function(key) {
            return {'c': [{'v': key}, {'v':parseInt(ages[key])}] };
        })
    }
}

// Usage:
convert({
    "age": [{
        "Under 20": "14",
        "Above 40": "1"
    }]
});

以上代码输出:

{"rows":[{"c":[{"v":"Under 20"},{"v":14}]},{"c":[{"v":"Above 40"},{"v":1}]}]}