转化为数组

// arguments变量的写法
function sortNumbers() {
  return Array.prototype.slice.call(arguments).sort();
}

// rest参数的写法
const sortNumbers = (...numbers) => numbers.sort();

  今天在阮一峰老师es6中看到rest 参数,就是把字符串等转化为数组,

 Array.prototype.slice.call(),调用方法
Array.prototype.slice = function(start,end){
2      var result = new Array();
3      start = start || 0;
4      end = end || this.length; //this指向调用的对象,当用了call后,能够改变this的指向,也就是指向传进来的对象,这是关键
5      for(var i = start; i < end; i++){
6           result.push(this[i]);
7      }
8      return result;
9 }

以前没怎么关注这个东东,一直循环字符串放进数组,现在结合下感觉下面的比较好

var toArray = function(s){
    try{
        return Array.prototype.slice.call(s);
    } catch(e){
            var arr = [];
            for(var i = 0,len = s.length; i < len; i++){
                //arr.push(s[i]);
                   arr[i] = s[i];  //据说这样比push快
            }
             return arr;
    }
}

 完事~~! 

posted @ 2018-06-04 16:56  王老五Plus  阅读(198)  评论(0编辑  收藏  举报