1. 程式人生 > >不使用迴圈,建立一個長度為100的陣列,並使陣列的每個值等於它的下標(待更新)

不使用迴圈,建立一個長度為100的陣列,並使陣列的每個值等於它的下標(待更新)

這是我一道很早接觸的題目,整理過幾次都覺得不夠好。原出題人主要靠對es6語法的掌握,結果知乎大神們五花八門的答案真的重新整理我對JavaScript的認識。 這裡,先記錄長度較短的答案,以後再解釋難度較大的答案。



// 先建立一個長為100的稀疏陣列
let temp = Object.keys(Array.apply(null, {length:100}))

let arr = temp.map(item => {
// 轉為數字型別
  return +temp;
})
// Array.keys拿到迭代器
let arr = Array.from(new Array(100).keys())

// 方法與第一種類似 同樣為字元陣列 需要轉化
let temp = Object.keys(Array.from({length:100}))

// es6擴充套件運算子
let arr = [...Array(100).keys()]

tips:

    // all不是一個數組,是一個類陣列物件
    let all = document.querySelectorAll('.a')
    // 轉為陣列
    let arr = Array.from(all)