前端练习27 不用循环生成数组

这篇博客介绍了如何在不使用循环控制结构的情况下,通过递归和数组方法生成一个数组,其中每个元素的值等于其下标。文章详细解释了递归思路,展示了利用`Array.from`、递归函数以及数组扩展方法(如`Array.prototype.fill`和迭代器)来实现这一目标,并讨论了不同方法的适用场景。
摘要由CSDN通过智能技术生成

知识点

  1. 递归思路
  2. Array.from
  3. new Array参数和Array.of的区别
  4. 数组的keys()方法
  5. 数组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等都会跳过数组中的空对象

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值