伪数组(arguments及字符串)转数组的方法 贼简单

超简单的伪数组转数组的方法, 简单到令人发指! (这里伪数组使用arguments)

1.使用 Array.prototype.slice

 

            Array.prototype.slice.call(arguments)
        

 

slice() 方法返回一个新的数组对象,这一对象是一个由 begin和 end(不包括end)决定的原数组的浅拷贝。原始数组不会被改变。

虽然是浅拷贝, 但是对于arguments的转数组足够了, 因为啥呢?就是因为arguments这个东西一般不会动它。

 

2. 使用Array.from() 函数

Array.from()

该函数是Array的一个方法,官方描述就是伪数组转数组的方法;

 

 Array.from(arrayLike[,mapFn[, thisArg]);

 

使用场景
1: arguments转数组;
Array.from(arguments);

2: 字符串转数组
var str = '123abc';
var arr = Array.from(str);

3: 其他场景

第二个参数是map函数, 可以对每个item进行加工后返回。

3. 使用 ... 运算符

var arr = [...arguments];

该运算符还能在数组的复制场景下使用

// bad
const len = items.length;
const itemsCopy = [];
let i;

for (i = 0; i < len; i += 1) {
  itemsCopy[i] = items[i];
}

// good
const itemsCopy = [...items];

 

(完)

 

posted @ 2018-11-28 00:14  寒玉知  阅读(610)  评论(0编辑  收藏  举报