1. ホーム
  2. javascript

[解決済み] CoffeeScriptでオブジェクトのキーと値を反復処理する方法は?

2022-04-20 15:47:10

質問

あるオブジェクト(いわゆる連想配列)があります。

obj = {}
obj["Foo"] = "Bar"
obj["bar"] = "Foo"

を反復処理したい obj をCoffeeScriptを使って以下のように記述します。

# CS
for elem in obj

上のCSのコードをJSにコンパイルします。

// JS
for (i = 0, len = obj.length; i < len; i++)

というのは、この場合適切ではありません。


JavaScriptの方法は次のようになります。 for(var key in obj) が、今、疑問に思っているのは CoffeeScriptでこれを行うにはどうしたらよいでしょうか?

どのように解決するのですか?

使用方法 for x,y of L . 関連ドキュメント .

ages = {}
ages["jim"] = 12
ages["john"] = 7

for k,v of ages
  console.log k + " is " + v

出力内容

jim is 12
john is 7

また、バリアントである for own k,v of ages Aaron Dufourがコメントで述べている通りです。これは、プロトタイプから継承されたプロパティを除外するためのチェックを追加するもので、この例ではおそらく問題にはなりませんが、他のものの上に構築する場合はそうなるかもしれません。