javascript – 如何在CoffeeScript中迭代对象中的键和值?

我有一个对象(一个“关联数组”,也就是说 – 也称为普通的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年龄的变体.这会添加一个检查以排除从原型继承的属性,这可能不是本例中的问题,但可能是在构建其他东西之上.

上一篇:javascript – 在rails上的ruby中的Coffeescript编译错误


下一篇:javascript – node.js堆栈跟踪线中冒号后面的第二个数字是什么意思?