underscorejs-toArray学习

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进行操作。

原文地址:https://www.cnblogs.com/kyo4311/p/5178326.html