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