2

說我有一個對象,如我可以將一對鍵值對作爲文字在一行中添加到JavaScript對象嗎?

var obj = { 
    foo: 1, 
    bar: 2 
} 

而且我想添加一些按鍵而不進行循環,一些語義上是這樣的:

obj += { baz: 3, fred: 4 } 

這有可能利用現有的JS功能?我想在一些功能風格的鏈中做。

+1

你想'Object.assign'在現代瀏覽器 –

+1

'Object.assign(OBJ,{巴茲:3,弗雷德:4});' – 4castle

+0

注:對於舊的瀏覽器,(互聯網爆炸品)有一個[Polyfill](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#Polyfill) –

回答

3

檢查compatibility是在此之前一個問題,但反對destructuring救援:

var obj = { 
    foo: 1, 
    bar: 2 
} 

obj = {...obj, baz: 3, fred: 4} 

以下是不可能的,但我們可以夢想:

obj ...= {beef: 5} 
+1

Object.assign更多的是「一旦你使用polyfill進行互聯網爆炸」友好 - 而,這段代碼需要被轉發 - 不是批評,只是一個想法 –

+0

是的,我會添加一個鏈接到caniuse.com這個 – Isaac

1

,右張貼後,我的谷歌搜索成功了!

顯然Object.assign與ES6抵達,我真的在尋找現代化的JS答案。

var obj = { 
    foo: 1, 
    bar: 2 
} 

obj = Object.assign(obj, {baz:3, fred:4}) 
+1

如果你有興趣創建一個無突變的對象(並不總是重要的),試試'let newObj = Object.assign({},obj,{baz:3,fred:4});'或者如果您不介意轉譯或正在使用最近的stable [node]你也可以擴展/解構爲'obj = {... obj,baz:3,fred:4};' –

相關問題