數組的五中遍歷方式(forEach,filter,map,some,every)

  • forEach 遍歷所有的元素,沒有返回值, return 不會終止循環,只會結束本次循環,進行下一輪。

    let ary = [
      { name: 'aa', age: 10 },
      { name: 'bb', age: 11 },
      { name: 'cc', age: 12 },
      { name: 'dd', age: 13 },
      { name: 'ee', age: 14 },
    ]
    
    let ary1 = []
    let re = ary.forEach((item, index, list) => {
      if (item.name === 'aa') {
        return
      }
      ary1.push(item.name)
    })
    console.log(ary1)  // ["bb", "cc", "dd", "ee"]
    console.log(re)  // undefined
    console.log(ary) // (5) [{…}, {…}, {…}, {…}, {…}]
  • filter 過濾 返回符合添加的一個新的數據,不會改變原數組
    let ary2 = ary.filter((item, index, list) => {
      return item.age > 12
    })
    console.log(ary2) // (2) [{…}, {…}]
    console.log(ary) // (5) [{…}, {…}, {…}, {…}, {…}]
  • every 判斷是否每一個元素都符合條件 返回一個布爾值,遇到不滿足條件的元素之後結束循環
    let isAge = ary.every((item, index, list) => {
      console.log(index)  // 0
      return item.age > 11
    })
    console.log(isAge)  // false
  • some 判斷是否存在一個元素符合條件,遇到滿足條件的元素之後結束循環
    let existAge = ary.some((item, index, list) => {
      console.log(index) // 0 1 2
      return item.age > 11
    })
    console.log(existAge)  // true
  • map 返回一個新的數組 不會改變原來的數組,將一個值從一種形式映射到另一種形式,每一次遍歷都會有一個返回值,這些返回值組合成新數組。
    let ary3 = ary.map((item, index, list) => {
      return item.age + 10
    })
    console.log(ary3) // [20, 21, 22, 23, 24]
    console.log(ary)  // (5) [{…}, {…}, {…}, {…}, {…}]
  • 發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章