如何在 CoffeeScript 中迭代对象中的键和值?
我有一个对象(可以说是关联数组" - 也称为纯 JavaScript 对象):
I have an object (an "associate array" so to say - also known as a plain JavaScript object):
obj = {}
obj["Foo"] = "Bar"
obj["bar"] = "Foo"
我想使用 CoffeeScript 迭代 obj
,如下所示:
I want to iterate over obj
using CoffeeScript as follows:
# CS
for elem in obj
上面的CS代码编译成JS:
bu the CS code above compiles to JS:
// JS
for (i = 0, len = obj.length; i < len; i++)
在这种情况下不合适.
JavaScript 方式是 for(var key in obj)
但现在我想知道:我如何在 CoffeeScript 中做到这一点?
The JavaScript way would be for(var key in obj)
but now I'm wondering: how can I do this in 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
您可能还需要考虑 Aaron Dufour 在评论中提到的变体 for own k,v of age
.这会添加一个检查以排除从原型继承的属性,这在本示例中可能不是问题,但如果您是在其他东西之上构建,则可能会出现问题.
You may also want to consider the variant for own k,v of ages
as mentioned by Aaron Dufour in the comments. This adds a check to exclude properties inherited from the prototype, which is probably not an issue in this example but may be if you are building on top of other stuff.
相关文章