不使用循环,如何创建一个长度为100的数组

2018-12-07  本文已影响0人  阿布朗迪

问题描述:在不使用循环的条件下,如何创建一个长度为100的数组,并且数组的每一个元素是该元素的下标?

方法一:传统的方法创建

 var arr = new Array(100);
 for(var i = 0;i< 100;i++){
      arr[i] = i;
 }
 console.log( arr)

方法二:Object.keys()
这种方法一般真的很少有人用,如果不对此有研究的很难挖掘到,如果在面试当中碰到这样的题目,可能是一个加分项,但是一定要对此有深入的了解。在MDN中是这样描述的

**Object.keys()** 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用for...in 循环遍历该对象时返回的顺序一致 。

Object.keys(obj)
参数
obj 要返回其枚举自身属性的对象,返回值是一个表示给定对象的所有可枚举属性的字符串数组

Object.keys 返回一个所有元素为字符串的数组,其元素来自于从给定的object上面可直接枚举的属性。这些属性的顺序与手动遍历该对象属性时的一致。

let a = Object.keys(Array.apply(null,{length:100})).map(function(item){
    return +item
});
console.log( a )

+号是一个转换格式的小技巧,你也可以使用parseInt

方法三:Array.from()

var arr = Array.from({length:100},(v,i)=>{i}).keys;
console.log( arr )

这里使用的Array.from()方法,从类数组或可迭代的对象创建一个新数组

方法四:Array.keys()

var arr = new Array(100).keys();
console.log( Array.from(arr) )

这里主要使用Array.keys()方法,获取数组的key值

方法五:Object.keys() 与 Array.from()

var arr = Object.keys(Array.from({length:100})).map((item)=>{return +item});
console.log( arr )

方法六:使用...扩展运算符

var arr = [...Array.from({length:100}).keys()];
console.log(arr);

原文出处https://www.cnblogs.com/liugang-vip/p/6617988.html

上一篇下一篇

猜你喜欢

热点阅读