知识点
- 递归思路
Array.from
new Array
参数和Array.of
的区别- 数组的
keys()
方法 - 数组
map
方法对空对象的处理
题目
完成arrWithoutLoop
函数,它会被传入一个整数n
作为参数,返回一个长度为n
的数组,数组中每个元素的值等于它的下标。arrWithoutLoop
中不能使用循环控制结构。
实现
首先想到了用Array.from
方法,原来用它来填充数组,它接受两个参数,第一个参数是一个类似数组或可迭代对象,第二个参数是对新数组每个元素执行的回调函数
所以我们可以通过构造一个类数组对象{length: n}
来生成一个数组,或者也可以直接构造数组(new Array(n)),生成一个n个空对象的新数组,然后通过Array.from
的第二个参数生成想要的元素:
const arrWithoutLoop = (n) => Array.from({ length: n }, (value, key) => key)
为什么不能用map
呢?因为map
/forEach
等都会跳过数组中的空对象