every()

every() 方法接收一個函數作爲參數,判斷數組中每一項都是否滿足條件,只有所有項都滿足條件,纔會返回true。

  const arr = [11, 5, 2, 4, 111]
  const gig = arr.every(elem => elem > 100)
  const little = arr.every(elem => elem < 1000)
  console.log(gig);//false
  console.log(little);//true

every():
        判斷數組中每一項都是否滿足條件,只有所有項都滿足條件,纔會返回true;
        返回值爲一個布爾值;
        有兩個參數:
          第一個參數是:callback回調函數
            callback回調函數裏面的第一個參數是:
              ele代表着正在處理的元素
            callback回調函數裏面的第二個參數是:
              index代表着數組的索引值
            callback回調函數裏面的第三個參數是:
              self代表着數組本身
          第二個參數是:thisArg(可選)
            代表着this默認指向window

  const arr = [
    { name: '張三', age: 21 },
    { name: '李四', age: 22 },
    { name: '王五', age: 23 },
  ];
  let obj = {
    naem: 'xyz'
  }
  const newEvery = arr.every((ele, index, self) => {
    return ele.age > 10
  }, obj)
  console.log(newEvery)

通過源碼實現every方法:

const arr = [
    { name: '張三', age: 21 },
    { name: '李四', age: 18 },
    { name: '王五', age: 23 },
  ];
  let obj = {
    naem: 'xyz'
  }
  Array.prototype.myEvery = function(func){
    let _this = arguments[1] || window;
    let flag = true;
    for (let i = 0; i < this.length; i++) {
      if(func.apply(_this, [this[i], i, this]) == false){
        flag = false;
        break;
      }
    }
    return flag
  }
  const newEvery = arr.myEvery((ele, index, self) => {
    return ele.age > 10
  }, obj)
  console.log(newEvery)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章