for循环与foreach循环遍历数组的理解

/**
         * for循环遍历,
         * 依靠下标定位,int i的值即下标,查询的时候比较灵活,
         * 每循环一次就会调用一次getCount()来比较长度,
         * 只能用于固定的长度而且有序
         */
        

/**
         * foreach循环
         * 不考虑长度,只调用一次getlist();
         * 会锁定集合中的对象,期间不能修改,必须全部遍历出结果
         * 可以便利无序的
         */
        

/**
* 总结:在固定长度或者长度不需要计算的时候for循环效率高于foreach
* 在不确定长度或者计算长度有损性能的时候用foreach比较方便
* 在遍历数组的时候,for循环能够在遍历过程中修改数组中元素,而foreach不行
* for循环是可以中断循环(利用break语句或return语句),但forEach不可以中断循环
*/

举例

// 使用foreach无法中断循环,导致不能优先取人民币账户

searchAccData(){ // 加挂账户查询(查询所有)
      this.$axios.post(POST_ONACCOUNTLISTQRY, {OpType: 'C'}).then(res => {
        if (res._RejCode === "000000") {
          for(let i = 0;i< res.DataList.length;i++){
            if(res.DataList[i].Currency === 'CNY'){ // 优先默认给一个人民币账户,若没有则取一个外币账户
                this.formData.cardNum = res.DataList[i].AcctNo
                break
             }else{
                this.formData.cardNum = res.DataList[i].AcctNo
             }
          }
        }else{
          this.$message.error(res._RejMessage?res._RejMessage:'接口报错了')
        }
      }).catch(err=> {
        this.$message.error(err?err:'接口报错了')   
      })
    }

你可能感兴趣的:(for循环与foreach循环遍历数组的理解)