2016-12-28 39 views
1

我有一個JSON對象從名爲Data這樣的後端服務器來:如何添加列到數組中的項目?

[{ 
    "categoryName": "Google", 
    "id": "58591d2b7672d99910497bec", 
    "clientId": "585808f6737f6aad1985eab2" 
}, { 
    "categoryName": "Microsoft", 
    "id": "58591d3d7672d99910497bee", 
    "clientId": "585808f6737f6aad1985eab2" 
}, "3", { 
    "categoryName": "Yahoo", 
    "id": "58591d4c7672d99910497bef", 
    "clientId": "585808f6737f6aad1985eab2" 
}, { 
    "categoryName": "Msn", 
    "id": "585d25f6ae4b2ecb056bc514", 
    "clientId": "585808f6737f6aad1985eab2" 
}] 

,我想一列(屬性)添加到每一行是這樣的:

[{ 
    "categoryName": "Google", 
    "id": "58591d2b7672d99910497bec", 
    "clientId": "585808f6737f6aad1985eab2", 
    "new column": "" 
}, { 
    "categoryName": "Microsoft", 
    "id": "58591d3d7672d99910497bee", 
    "clientId": "585808f6737f6aad1985eab2", 
    "new column": "" 
}, "3", { 
    "categoryName": "Yahoo", 
    "id": "58591d4c7672d99910497bef", 
    "clientId": "585808f6737f6aad1985eab2", 
    "new column": "" 
}, { 
    "categoryName": "Msn", 
    "id": "585d25f6ae4b2ecb056bc514", 
    "clientId": "585808f6737f6aad1985eab2", 
    "new column": "" 
}] 

不任何人我如何能做到這一點?

在此先感謝。

+0

你可以使用JavaScript的地圖功能,以新的屬性添加到每個對象。但爲什麼你會這樣做,如果它將是一個空字符串呢? – toskv

+5

爲什麼突然出現「3」? – Chybie

+0

當然,它不會保持空虛。 –

回答

4

試試這個:

data.forEach(function(e){ 
    if (typeof e === "object"){ 
    e["new column"] = "" 
    } 
}); 

需求,由於在中間的那個怪異3的typeof檢查。

4

你可以這樣做:

const arr = data.map(x => Object.assign({}, data, { "new column": "" })) 
+0

這仍然需要處理那個怪異的「3」。但+1不會改變原始數據,也不會使用適當的動詞「map」。 –

+0

抱歉關於「3」。這是一些測試的結果... –

+0

好的。沒有3好! – Chybie