如何在 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 agesAaron Dufour 在评论中提到的变体。这添加一个检查以排除从原型继承的属性,这在本示例中可能不是问题,但如果您正在构建其他东西,则可能会出现问题。

解决方法

我有一个对象(可以说是“关联数组” - 也称为纯 JavaScript 对象):

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

我想使用 CoffeeScript 进行迭代obj,如下所示:

# CS
for elem in obj

bu 上面的 CS 代码编译成 JS:

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

在这种情况下不合适。


JavaScript 方式会是for(var key in obj),但现在我想知道:我 怎样才能在 CoffeeScript 中做到这一点?