【JS学习】js中forEach与for循环

最近在用forEach循环时,想查找某个数组id上个id的值,进行位置颠倒。思路是找到便利数组id,找到相等的便跳出循环。结果发现return false只退出当前循环,并没有跳出forEach循环。于是只能用for循环break做了处理。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 upSort () {       var upId = -1       // this.tableData.forEach(item => {       //   if (item.id === this.checkId) {       //     return false // 结束不了forEach循环 只是结束本次循环体       //   }       //   upId = item.id       // })       for (let i=0;i<this.tableData.length;i++) {         if (this.tableData[i].id === this.checkId) {           break         }         upId = this.tableData[i].id         console.log('upId ===',upId)       }       let params = [         {id: this.checkId, sort: this.sort-1},         {id: upId , sort: this.sort}       ]       console.log('params===',params)     }

  后来网上看到一种利用异常处理跳出forEach循环的方法

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 upSort () {       var upId = -1       try {         this.tableData.forEach(item => {           if (item.id === this.checkId) {             throw new Error('return false')           }           upId = item.id         })       } catch (e) {         console.log(e)       }               let params = [         {id: this.checkId, sort: this.sort-1},         {id: upId , sort: this.sort}       ]       console.log('params===',params)     },

  哎,菜是原罪!

上一篇:Echarts显示某省地图


下一篇:ECharts 柱形图 Y轴不等距轴