美文网首页
不使用循环生成100位数组

不使用循环生成100位数组

作者: 不要变成发抖的小喵喵喵喵喵喵 | 来源:发表于2017-06-06 14:48 被阅读0次

之前在我自己的知乎记录过一次,过段时间不用竟然又忘记啦,那就再回顾一遍!😊

传统的方法生成数组

//1.传统的for循环写法
var arr = [];
for(var i = 0; i < 100; i ++){
  arr[i] = i;
}
console.log(arr);  // [0,1,2...99]

//2.
var arr2 = [];
for(var i = 0; i < 100; i ++){
  arr2.push(i);
}
console.log(arr2); // [0,1,2,...99]

不使用循环的方式为的第一种

  • 使用Array.apply(null,{length:100})生成一个100位的数据,每个值为undefined
  • 然后在使用Object.keys()方法获取数组的key值,但是这里得到的数组是一个字符串数组,不是数字
  • 所以我们需要再加工一下。
// 生成100位数组
var arr = Array.apply(null,{length:100}) 
// 获得数组的字符串key值
arr = Object.keys(arr);
// 将字符串key值转成number
arr = arr.map(function(item){
   return +item;
})

// 总体的写法
var arr = Object.keys(Array.apply(null,{length:100})).map(function(item){
  return +item;
})
console.log(arr);

不使用循环的方式为的第二种

Array.from({length:100},(v,i) => i);
//[0,1,2,3....99];
  • es6的Array.prototype.keys(),keys()方法返回一个新的Array Iterator,它包含数组中每个索引的键。 参考Array.prototype.keys()
var arr = new Array(100).keys();
console.log(Array.from(arr));
//[0,1,2,3....99];

相关文章

  • 不使用循环生成数组

    传统的方法生成数组 第一种不使用循环生成数组的方式 使用 Array.apply(null,{length:10}...

  • 常见的编码规范

    1.使用 Array.from 快速生成数组 一般我们生成一个有规律的数组会使用循环插入的方法,比如使用时间选择插...

  • JS常用技巧

    函数 使用递归实现求阶乘 作用域 模拟块级作用域 数组 生成一个索引与值一一对应的数组(0-2) 循环 循环+匿名...

  • abcde全排列及改进

    思路 代码 改进点 五层for循环是不合理的,超过3就应当考虑使用循环 数组生成可以优化 改进后的代码 结果:

  • js的几种常用技巧

    函数使用递归实现求阶乘 作用域模拟块级作用域 数组生成一个索引与值一一对应的数组(0-2)循环 循环+匿名函数 数...

  • Javascript数组练习题

    一、生成一个类似[1-100]的数组; 思路: 生成一个length是100的数组 , 循环数组添加值 1.1利用...

  • 前端常见面试题

    1~数组的map方法和foreach的区别 foreach只做循环,map循环数组的每一项,生成新的数组对象,然后...

  • 数组循环倒叙生成

    项目中要用到这种数组[1, 2, 3, 4, 5, 4, 3, 2, 1, 2, 3, 4, 5, 4, 3, 2...

  • JavaScript秘密花园--数组

    数组 1、经典for循环,不推荐for in,使用l缓存数组长度,减少性能消耗 2、length 属性的 gett...

  • Swift 5.1 (5) - 控制流

    控制流 For-In循环 使用for-in循环迭代数组 使用for-in循环迭代字典 使用for-in循环迭代数值...

网友评论

      本文标题:不使用循环生成100位数组

      本文链接:https://www.haomeiwen.com/subject/tyggfxtx.html