我的數據如何對象轉換爲對象的數組
var data={
key:value,
key:value,
key:value
};
預計輸出
var data=[
{key:value},
{key:value},
{key:value}
];
我的數據如何對象轉換爲對象的數組
var data={
key:value,
key:value,
key:value
};
預計輸出
var data=[
{key:value},
{key:value},
{key:value}
];
簡單的在循環是處理此問題的方法:
var data = {
key: 'value',
key1: 'value1',
key2: 'value2'
};
var arr = [];
for(var k in data){
var o = {};
o[k]=data[k];
arr.push(o)
}
console.log(arr)
您可以使用Object.keys
有keys
:
Object.keys(data)
console.log(Object.keys(data)[0]) // will print first key
或者您可以使用Object.values
得到的值:
Object.values(data)
console.log(Object.values(data)[0]) // will print first key value
使用Object.keys
和Array#map
方法。
var data = {
key: 'value',
key1: 'value',
key2: 'value'
};
console.log(
// get all object property names(keys)
Object.keys(data)
// iterate over the keys array
.map(function(k) {
// generate the obect and return
var o = {};
o[k] = data[k];
return o;
})
)
可以使用多個ES6速記以產生一個表達所希望的輸出:
Object.keys(data).map(key => ({[key]: data[key]}))
下面的代碼片斷演示此:
const data = {
key0:'value0',
key1:'value1',
key2:'value2'
};
const output = Object.keys(data).map(key => ({[key]: data[key]}));
console.log(JSON.stringify(output));
嘗試這樣做是這樣的: -
function json2array(json){
var output = [];
var keys = Object.keys(json);
keys.forEach(function(key){
output.push(json[key]);
});
return output;}
我懷疑這是你的數據,如果你這樣聲明,你的數據實際上是'var data = {key:value}',所以請給我們一個可驗證的代碼示例 – nozzleman