Files
coffeescript/test/fixtures/execution/test_array_comprehension.coffee

43 lines
920 B
CoffeeScript

nums: n * n for n in [1, 2, 3] when n % 2 isnt 0
results: n * 2 for n in nums
print results.join(',') is '2,18'
obj: {one: 1, two: 2, three: 3}
names: prop + '!' for prop of obj
odds: prop + '!' for prop, value of obj when value % 2 isnt 0
print names.join(' ') is "one! two! three!"
print odds.join(' ') is "one! three!"
evens: for num in [1, 2, 3, 4, 5, 6] when num % 2 is 0
num *= -1
num -= 2
num * -1
print evens.join(', ') is '4, 6, 8'
# Make sure that the "in" operator still works.
print 2 in evens
# When functions are being defined within the body of a comprehension, make
# sure that their safely wrapped in a closure to preserve local variables.
obj: {}
methods: ['one', 'two', 'three']
for method in methods
name: method
obj[name]: ->
"I'm " + name
print obj.one() is "I'm one"
print obj.two() is "I'm two"
print obj.three() is "I'm three"