2011-09-16 43 views
2
 dbLocation[latitude] = data[1] 
     dbLocation[longitude] = data[2] 
     dbLocation[locationText] = locationText 

這是我的CoffeeScript,沒有辦法優化它,所以它更緊湊?我怎麼能同時設置多個對象的屬性與CoffeeScript的?

+0

嗯,在JavaScript中有'Object.defineProperties' ... –

+0

不知道如何幫助... – Shamoon

+0

你會有寫對象的名字 - 'dbLocation'在這種情況下 - 只有一次(而不是例如三次在你的代碼)。 –

回答

3

你可以寫

obj = { 
    latitude: data[1] 
    longitude: data[2] 
    locationText 
} 

,然後通過寫入

dbLocation[key] = val for key, val of obj 

或使用像jQuery或下劃線的extend功能合併新對象中dbLocation

+0

沒有辦法一步到位做到這一點? – Shamoon

+0

不無輔助函數。如果您使用Underscore.js:'_.extend dbLocation,{緯度:數據[1],經度:數據[2],locationText}'。如果您使用的是jQuery,請改用'.extend'。 –

1

這裏是一個一行,但它不是真的更可讀:

[dbLocation.latitude, dbLocation.longitude, dbLocation.locationText] = [data[1], data[2], locationText] 
相關問題