2.23 toArray
2.23.1 语法:
_.toArray(list)
2.23.2 说明:
把list(任何可以迭代的对象)转换成一个数组,在转换arguments对象时非常有用。
2.23.3 代码示例:
示例一: arguments不是数组。
(function(){
console.log(arguments); //=> [1, 2, 3]
arguments.push(4); //=> arguments.push is not a function
}(1,2,3));
示例二: arguments对象转化为数组
(function(){
var arr = _.toArray(arguments);
arr.push(4);
console.log(arr); //=> [1, 2, 3, 4]
}(1,2,3));
示例三:通过toArray转化的数组是进行克隆的。
var arr = [1, 2, 3];
var arr2 = arr; //通过赋值,只是引用
console.log(arr2 === arr); //=> true
var arr3 = _.toArray(arr); //会克隆一个新数组。
console.log(arr3 === arr) //=> false
示例四:将对象转换为数组
var numbers = _.toArray({one : 1, two : 2, three : 3});
console.log(numbers); //=> [1, 2, 3]
示例五:将字符串转换为组数
var numbers = _.toArray('1234');
console.log(numbers); //=> ["1", "2", "3", "4"]
2.23.4 不转化为数组的情况下处理arguments
(function(){
console.log(arguments); //=> [1, 2, 3]
[].push.call(arguments, 4);
console.log(arguments); //=> [1, 2, 3, 4]
}(1,2,3));
对于初学者来说先掌握的是:_.toArray很适合将arguments转成数据,然后再进行操作。
对于深入一些的同学掌握call和apply对arguments进行操作。