1
0
Fork 0
mirror of https://github.com/jashkenas/coffeescript.git synced 2022-11-09 12:23:24 -05:00
jashkenas--coffeescript/test/test_ranges_slices_and_splices.coffee

51 lines
782 B
CoffeeScript
Raw Normal View History

# Slice.
2010-07-25 01:23:37 -04:00
array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2009-12-25 19:35:57 -05:00
2010-07-25 01:23:37 -04:00
a = array[7..9]
b = array[2...4]
2009-12-25 19:35:57 -05:00
2010-07-25 01:23:37 -04:00
result = a.concat(b).join(' ')
2009-12-25 19:35:57 -05:00
ok result is "7 8 9 2 3"
2010-07-25 01:23:37 -04:00
a = [0, 1, 2, 3, 4, 5, 6, 7]
deepEqual a[2...6], [2, 3, 4, 5]
# Ranges.
2010-07-25 01:23:37 -04:00
countdown = [10..1].join(' ')
ok countdown is "10 9 8 7 6 5 4 3 2 1"
2010-07-25 01:23:37 -04:00
a = 1
b = 5
nums = [a...b]
ok nums.join(' ') is '1 2 3 4'
2010-07-25 01:23:37 -04:00
b = -5
nums = [a..b]
ok nums.join(' ') is '1 0 -1 -2 -3 -4 -5'
# Expression-based range.
2010-07-25 01:23:37 -04:00
array = [(1+5)..1+9]
ok array.join(' ') is "6 7 8 9 10"
# String slicing (at least on Node).
2010-07-25 01:23:37 -04:00
hello = "Hello World"
ok hello[1...1] is ""
ok hello[1..1] is "e"
ok hello[1...5] is "ello"
ok hello[0..4] is "Hello"
# Splice literals.
2010-07-25 01:23:37 -04:00
array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2010-07-25 01:23:37 -04:00
array[5..10] = [0, 0, 0]
ok array.join(' ') is '0 1 2 3 4 0 0 0'