首页 > 代码库 > 不使用loop生成一个长度n=100,每一项的数据类型为Number,值等于其下标的数组arry。

不使用loop生成一个长度n=100,每一项的数据类型为Number,值等于其下标的数组arry。

  这两天在群里看到一组uc国际的面试题,趁有空,也过了一遍,题目如下:

技术分享

简单做了一下,暂时实现方法如下:

①setTimeout计时器

var i = 0,k = [],j;
function count(){
  if(i > 100){
    clearInterval(j);
    console.log(k);
  }else{
    k[i] = i++;
  }
}
j = setInterval(function(){
  count();
},20);

 

②递归

var rr = [];
function sum(n){
    if(n < 100){
        rr[n+1] = n + 1;
        return sum(n+1);
    }
}
sum(0);
console.log(rr);

 

③map+join

var newArr = new Array(100),i = 0;
var dd = newArr.join().split(‘,‘);
dd.map(function(item){
    if(i < 100){
       newArr[i] = i++;
    }
});
console.log(newArr);

 

//④Array.apply(null,{length: 100})

var newArr = Array.apply(null,{length: 100}),i = 0;
newArr.map(function(item,i){
    if(i < 100){
        newArr[i] = i++;
    }
});
console.log(newArr);

 

暂时想到这么点,后面想到一个加一个咯。

不使用loop生成一个长度n=100,每一项的数据类型为Number,值等于其下标的数组arry。