數組的遍歷

遇到一個項目須要本身根據不一樣平臺顯示不一樣的頁面和連接,因此本身寫了一個數組,須要遍歷數組數組

list: [ { id: 'czbguanwei', logo: require('../assets/chargeDis/chezhubang.png'), title: '百度推廣官微', activeState: '車主邦北京已上線的珠海驛聯電站', dec: '初秋送爽,車主邦爲新能源汽車用戶送上初秋福利!' } ]性能

一開始我想到了forEach遍歷ui

this.platformList.forEach(item => {
      console.log(item.id)
      if (item.id === this.$route.params.id) {
        this.info = item
        console.log(item.title)
        window.zhuge.track(item.title)
      }
    })

可是這種遍歷方式,break無效this

爲了性能;我選擇了 for incode

for (let idx in platformList) {
      if (platformList[idx].id === this.$route.params.id) {
        this.info = platformList[idx]
        window.zhuge.track(this.info.title)
        break
      }
    }

map也能夠實現: map和foreach 都是不能return break結束循環,可是map能夠return一個新的數組並且不改變原來的數組orm

platformList.map((item) => {
      if (item.id === this.$route.params.id) {
        this.info = item
      }
    })

filterit

platformList.filter((item) => {
      if (item.id === this.$route.params.id) {
        this.info = item
        console.log(item)
        return item
      }
    })

everyconsole

platformList.every((item) => {
      if (item.id === this.$route.params.id) {
        this.info = item
        console.log(item)
        return item
      }
    })

every和filter的區別: filter()會返回全部符合過濾條件的元素;every()會判斷是否是數組中的全部元素都符合條件,而且返回的是布爾值 every()與some()的區別是:前者要求全部元素都符合條件才返回true,後者要求只要有符合條件的就返回trueform

相關文章
相關標籤/搜索