以下を使用して、オブジェクトのスライスを個別のローカル変数に抽出できます。
{a, b} = dict
ただし、オブジェクトのスライスに割り当てる方法はありません。つまり、次のようなことはできません。
dict{a, b} = [ x, y ]
のショートカットとして
dict.a = x
dict.b = y
次のようなものでは、オブジェクト スライスを新しいオブジェクトに抽出することさえできません。
obj = dict{a, b}
次の 2 つの手順で行う必要があります。
{ a, b } = dict
obj = { a, b }
構造化されていない割り当ては、オブジェクトから何かを引き出すのにはうまく機能しますが、オブジェクトに何かを戻すのにはあまり役に立ちません。あなたが得ることができる最も近いのは、非構造化配列の割り当てを使用することだと思います:
[ dict.a, dict.b ] = [ a, b ]
複数のキーを使用している場合は、キーを配列に入れて、ループでスライスとマージを行うことができます (ヘルパー関数でラップされている可能性があります)。
slice = (obj, keys...) ->
s = { }
s[k] = obj[k] for k in keys
s
merge = (dest, src) ->
dest[k] = src[k] for k of src
return
keys = [ 'a', 'b' ]
dict = { a: 1, b: 2, c: 3 }
s = slice(dict, keys...)
s.a += 6
s.b += 6
merge(dict, s)
# dict is now { a: 7, b: 8, c: 3 }
または、Underscore、jQuery、... ユーティリティ関数を使用するだけです。