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

これは私のCoffeeScriptです。それを最適化する方法は、より凝縮されていますか?CoffeeScriptで複数のオブジェクトプロパティを同時に設定するにはどうすればよいですか?

+0

JavaScriptでフム、 'Object.defineProperties' ... –

+0

それはどのように役立つかわからないがある... – Shamoon

+0

この場合は 'dbLocation'オブジェクトの名前を書く必要があります(コードの場合のように、例えば3回ではなく)。 –

答えて

3

あなたは

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

を書き、その後

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

やjQueryのまたはアンダーのextendのような関数を使用して書き込むことによってdbLocationにして、新しいオブジェクトをマージすることができます。

+0

これを1つのステップで行う方法はありませんか? – Shamoon

+0

ヘルパー機能がない場合。 Underscore.jsを使用している場合: '_.extend dbLocation、{latitude:data [1]、longitude:data [2]、locationText}' jQueryを使用している場合は、代わりに '$ .extend'を使用してください。 –

1

ここでワンライナーだが、それは本当にはるかに読みやすいではありません:あなたはなり

[dbLocation.latitude, dbLocation.longitude, dbLocation.locationText] = [data[1], data[2], locationText] 
関連する問題