何时在 coffeescript for 循环中使用 "from"、"of" 或 "in"
When to use "from", "of" or "in" in coffeescript for-loops
我发现文档非常混乱。我什么时候应该使用 for x of y
、for x from y
和 for x in y
?它在正常 Javascript 中的含义是什么?有哪些选择?
# Coffeescript # Translates to Javascript
# Iterables like Arrays and Generators:
for e from arr # for (e of arr)
# Arrays: "Comprehension"
for e in arr # for (j = 0, len = arr.length; j < len; j++) {
# Arrays, functionally:
arr.forEach (a) => # arr.forEach(a =>
# Objects: "Comprehension"
for k,v of obj # for (k in obj) {
# v = obj[k]
# Objects, only where hasOwnProperty
for own k,v of obj # for (k in obj) {
# if obj.hasProperty(k)
# Or manually, where hasOwnProperty
for [k,v] from Object.entries(obj) # for (x of obj) {
# [k, v] = x;
# Or manually, functionally, where hasOwnProperty
Object.entries(obj) # Object.entries(obj)
.forEach ([k,v]) => # .forEach(([k, v]) =>
# As embedded Javascript
`for (e of arr)` # for (e of arr)
`for (k in obj)` # for (k in obj)
简而言之:
from
变为 of
in
成为一个复杂的 for(;;)
循环和
of
变为 in
.
我发现文档非常混乱。我什么时候应该使用 for x of y
、for x from y
和 for x in y
?它在正常 Javascript 中的含义是什么?有哪些选择?
# Coffeescript # Translates to Javascript
# Iterables like Arrays and Generators:
for e from arr # for (e of arr)
# Arrays: "Comprehension"
for e in arr # for (j = 0, len = arr.length; j < len; j++) {
# Arrays, functionally:
arr.forEach (a) => # arr.forEach(a =>
# Objects: "Comprehension"
for k,v of obj # for (k in obj) {
# v = obj[k]
# Objects, only where hasOwnProperty
for own k,v of obj # for (k in obj) {
# if obj.hasProperty(k)
# Or manually, where hasOwnProperty
for [k,v] from Object.entries(obj) # for (x of obj) {
# [k, v] = x;
# Or manually, functionally, where hasOwnProperty
Object.entries(obj) # Object.entries(obj)
.forEach ([k,v]) => # .forEach(([k, v]) =>
# As embedded Javascript
`for (e of arr)` # for (e of arr)
`for (k in obj)` # for (k in obj)
简而言之:
from
变为of
in
成为一个复杂的for(;;)
循环和of
变为in
.