でこのようなことをしようとしていますcoffescript
が、機能していません。
locations =
[59.32522, 18.07002]
[59.327383, 18.06747]
でこのようなことをしようとしていますcoffescript
が、機能していません。
locations =
[59.32522, 18.07002]
[59.327383, 18.06747]
ああ、私はそれを理解しました..
locations = [
[59.32522, 18.07002]
[59.327383, 18.06747]
]
私はあなたがあなた自身の質問に対する解決策を見つけたことを理解しています、そしてこれはあなたがカークを探している正確な答えではありません。しかし、Rubyには、私が好きなハッシュオブジェクトの任意のハッシュがあります(固定次元配列よりもメモリを大量に消費することに注意してください)。
blk = lambda {|h,k| h[k] = Hash.new(&blk)}
x = Hash.new(&blk)
x[:la][:li][:lu][:chunky][:bacon][:foo] = "bar"
この構造の興味深い点は、この構造を使用して、必要なあらゆる種類のネストされたハッシュをその場で作成できることです(mkdir -pを使用してサブディレクトリを作成するようなものです)。JSONオブジェクトといくつかの性質を共有しています。
同様のオブジェクトがCoffeeScriptでどのように表示されるかを見てみましょう
x =
la:
li:
lu:
chunky:
bacon:
foo: 'bar'
alert x['la']['li']['lu']['chunky']['bacon']['foo']
y = { la: { li: { lu: { chunky: { bacon: { foo:'bary' } } } } } }
alert y['la']['li']['lu']['chunky']['bacon']['foo']
ブラケット演算子はJavascriptでオーバーロードできないため、純粋なJSONオブジェクトの作成よりも、インターフェイスを移動するときにクリーンな作成を思い付くことができませんでした。
わかりました。JSON構文のわずかな省略形を思いつきましたが、RubyのnestedHashほど良くはありません。
Block = (obj,rest...) ->
console.log 'obj',obj
console.log 'rest',rest
obj = {} if (typeof obj is "undefined")
if rest.length >= 2
key = rest[0]
obj[key] = Block(obj[key],rest[1...]...)
obj
else if rest.length is 1
obj = rest[0]
z = new Block(z,'la','li','lu','chunky','bacon','foo','barz')
console.log z['la']['li']['lu']['chunky']['bacon']['foo']
# extend the object
z = new Block(z,'la','li','lu','chunky','bacon','fooz','ball')
console.log JSON.stringify(z)
# add a node to an internal hash
a = z['la']['li']['lu']
a = new Block(a,'chunky','bacon','another','node')
console.log 'a is',JSON.stringify(a)
# the node now exists on the parent as well
console.log 'z is',JSON.stringify(z)