2016-12-06 374 views
2

我有這個轉換對象爲對象

[ 
{"2015":11259750.05}, 
{"2016":14129456.9} 
] 

,我想將其轉換爲

[ 
[2015,11259750.05], 
[2016,14129456.9] 
] 

是有使用JavaScript,我們可以做到這一點的任何功能。

剛剛結束我有一個頭,以及我要與上述結果包括,

[ 
    {"label":"SecuredYear","type":"string"}, 
    {"label":"ValueInDh‌​s","type":"number"} 
] 

上面沿那麼它應該看起來像`

[[ 
    {"label":"SecuredYear","type":"string"}, 
    {"label":"ValueInD‌​hs","type":"number"}‌​ 
], [2015,11259750.05],[2016,14129456.9] 
]` 

感謝

+2

你知道最終的結果你是在要求一個'數組(多維數組)的數組''而不是'對象',因爲你標題 –

回答

0

你可以迭代給定的數組,取對象的關鍵,用da創建一個新的數組ta,然後取消標題的結果。

var header = [{ label: "SecuredYear", type: "string" }, { label: "ValueInDh‌​s", type: "number" }], 
 
    data = [{ "2015": 11259750.05 }, { "2016": 14129456.9 }], 
 
    result = data.map(function (o) { 
 
     var k = Object.keys(o)[0]; 
 
     return [+k, o[k]]; 
 
    }); 
 

 
result.unshift(header); 
 

 
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

4

使用Array#map方法用Object.keys方法生成數組,然後在開始時使用Array#unshift方法添加原始數組。

var data = [{ 
 
    "2015": 11259750.05 
 
}, { 
 
    "2016": 14129456.9 
 
}]; 
 

 
// iterate over the array to generate new array 
 
var res = data.map(function(v) { 
 
    // get the property name from object 
 
    var k = Object.keys(v)[0]; 
 
    // generate element of the array 
 
    return [k, v[k]]; 
 
    // if you want to convert property name to number then 
 
    // return [+k, v[k]]; 
 
}); 
 

 
// add the original array at beginning 
 
res.unshift(data); 
 

 
console.log(res);

0

您可以循環陣列,並且然後提取每個對象,如下所示鍵Object.keys(obj)[0]並將其值obj[key]

使用parseint()到您的字符串數據轉換(在你的情況的對象密鑰)轉換成整數

var data = [{ 
 
    "2015": 11259750.05 
 
}, { 
 
    "2016": 14129456.9 
 
}]; 
 

 
var newData = []; 
 

 
data.forEach(function(obj,index){ 
 
    var key= Object.keys(obj)[0]; 
 
    newData.push([parseInt(key,10),obj[key]]); 
 
}); 
 

 
console.log(newData);

+0

,但如何轉換「2015」到2015 – Saleem

+0

@Saleem更新回答 –

+0

非常感謝它解決了我的問題。 – Saleem

0

var data =[{"2015":11259750.05},{"2016":14129456.9}] 
 
var res=[]; 
 

 
    data.map(function(a){ 
 
    Object.keys(a).forEach(function(b){ 
 
    res.push([parseInt(b),a[b]]) 
 
    }) 
 
       
 
    }) 
 
    console.log(res)

+1

@Saleem,請添加信息的問題。 –

0

試試這個,它正在按照您的期望:

var jsonObj = [ 
 
{"2015":11259750.05}, 
 
{"2016":14129456.9} 
 
]; 
 

 
var newArr = []; 
 
for (var i in jsonObj) { 
 
    var objKeys = Object.keys(jsonObj[i]); 
 
    newArr.push(Object.keys(jsonObj[i])); 
 
    newArr[i].push(jsonObj[i][objKeys[0]]); 
 
} 
 

 
console.log(newArr);