数组切片和拼接
Range 也可以被用来展开数组的切片. 通过两个点号的写法 (3..6), range 会包含最后一个数据 (3, 4, 5, 6); 通过三个点号的写法 (3...6), range 不会包含最后一个数据 (3, 4, 5). 切片的索引位置存在不错的默认值. 前面的索引位置省略的话, 默认会是 0, 后面的索引位置被省略的话, 默认值是数组的大小.
CoffeeScript:编译成JS:
- numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
- start = numbers[0..2]
- middle = numbers[3...-2]
- end = numbers[-2..]
- copy = numbers[..]
- var copy, end, middle, numbers, start;
- numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9];
- start = numbers.slice(0, 3);
- middle = numbers.slice(3, -2);
- end = numbers.slice(-2);
- copy = numbers.slice(0);
同样的语法还可以用在数组的片段上赋值一些新的值, 进行拼接。
CoffeeScript:编译成JS:
- numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- numbers[3..6] = [-3, -4, -5, -6]
- var numbers, _ref;
- numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
- [].splice.apply(numbers, [3, 4].concat(_ref = [-3, -4, -5, -6])), _ref;
注意 JavaScript 的 string 是不可变的, 所以不能用被拼接。
转载本站内容时,请务必注明来自W3xue,违者必究。