接收两个参数m和n。返回一个数组,该数组长度为m,值为n。(不能使用循环)
1. 递归法
function output(m,n){
let result = []
if (m === 0) {
return result
}else{
result.unshift(n)
return output(--m,n).concat(result)
}
}
- 使用数组方法
unshift()
来添加数组成员 - 使用数组方法
concat()
来本轮结果与递归产生的数组
2. Array.from()
function output(m,n){
return Array.from({length:m},v=>n)
}
ES6的Array.from()方法,它可将两类对象转化为数组:
- 类似数组的对象:最本质的特征就是该对象要拥有
length
属性 - 可遍历的对象
Array.from()可以接受两个参数: - 第一个参数是想要转成数组的对象
- 第二个参数是一个map方法。
与数组的map方法一致,第一个参数是数组成员→item,第二个参数(可省略)是数组的索引index,第三个参数(可省略)是数组本身
基于第一个参数生成一个数组后,如果存在第二个参数,就对该数组进行map操作,并将map操作后的数组作为结果返回。
网友评论