遇到一个项目须要本身根据不一样平台显示不一样的页面和连接,因此本身写了一个数组,须要遍历数组数组
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