我有一个对象(一个“关联数组”,也就是说 – 也称为普通的JavaScript对象):
obj = {}
obj["Foo"] = "Bar"
obj["bar"] = "Foo"
我想使用CoffeeScript迭代obj,如下所示:
# CS
for elem in obj
上面的CS代码编译成JS:
// JS
for (i = 0, len = obj.length; i < len; i++)
这种情况不合适.
JavaScript的方式是(obj中的var键),但现在我想知道:我怎么能在CoffeeScript中做到这一点?
解决方法:
用于L. Relevant documentation的x,y.
ages = {}
ages["jim"] = 12
ages["john"] = 7
for k,v of ages
console.log k + " is " + v
输出
jim is 12
john is 7
您可能还想考虑Aaron Dufour在评论中提到的自己的k,v年龄的变体.这会添加一个检查以排除从原型继承的属性,这可能不是本例中的问题,但可能是在构建其他东西之上.