#39 不用循环生成数组


  • 0
    administrators

    完成 arrWithoutLoop 函数,它会被传入一个整数 n 作为参数,返回一个长度为 n 的数组,数组中每个元素的值等于它的下标。arrWithoutLoop 中不能使用循环控制结构。

    (本题来源:UC 国际前端笔试题)


  • 0

    const arrWithoutLoop = (n) => Array.apply(null,{length:n}).map((item,i)=>i)


  • 1

    ES6就应该这么玩

    const arrWithoutLoop = (n) => [...Array(n)].map((x, i) => i)
    
    const arrWithoutLoop = (n) => Array.from(Array(n), (x, i) => i))
    

  • 1

    const arrWithoutLoop = n => [...Array(n).keys()]
    

  • 0

    0_1498795742404_TIM截图20170630120847.png
    map 不算循环吗


  • 0

    使用递归实现:

    const arrayWithoutLoop = (length) => {
      const array = Array(length)
    
      const recursiveFill = (array) => {
        if (!array[--length] && length >= 0) {
          array[length] = length
          recursiveFill(array)
        }
      }
      recursiveFill(array)
    
      return array
    }
    

  • 0

    const arrWithoutLoop = (n, arr = []) => n ? arr.unshift(n-1) && arrWithoutLoop(n-1, arr) : arr


登录后回复
 

与 ScriptOJ 的连接断开,我们正在尝试重连,请耐心等待