为了账号安全,请及时绑定邮箱和手机立即绑定

vue数组去重复,排序,判断周,循环请求接口按顺序执行方法

标签:
Vue.js

这篇文章主要介绍了简单了解vue数组的常用操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 。
``

``
//数据去重复
const unique=(arr1)=>{
			const res = new Map();
			return arr1.filter((a) => !res.has(a.siteId) && res.set(a.siteId, 1))
		},
 
//冒泡排序
const bSort=(arr)=>{
    var len = arr.length;
    for (var i = 0; i < len-1; i++) {
        for (var j = 0; j < len - 1 - i; j++) {
            // 相邻元素两两对比,元素交换,大的元素交换到后面
            if (arr[j] > arr[j + 1]) {
                var temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
    return arr;
  }
 
//传入日期判断第几周
const handleYearWeek =(dt)=>{
    let d1 = new Date(dt);
    let d2 = new Date(dt);
        d2.setMonth(0);
        d2.setDate(1);
        let rq = d1-d2;
        let days = Math.ceil(rq/(24*60*60*1000));
        let num = Math.ceil(days/7);
        return num;
}
 
//同步请求接口 
 const PromiseForEach=(arr,cb)=>{
    let realResult = []
    let result = Promise.resolve()
    arr.forEach((a, index) => {
      result = result.then(() => {
        return cb(a).then((res) => {
          realResult.push(res)
        })
      })
    })
    return result.then(() => {
      return realResult
    })
  }
/*同步方法调用*/
let mval=this.parameter.Month.split("-");
this.$GlobalFun.PromiseForEach(_self.waterData, (i) => {
                return new Promise((resolve, reject) => {                                 
                  setTimeout(() => {
                    let attribute = {
                        type:'2',
                        siteId: i.siteId,
                        monitorTime: mval[1],
                        level:'5',       
                        year:mval[0]
                    }; 
                    API_REPORT.detailInfo(attribute).then(result => { 
                    if(result.code == '200'){  
                      this.tableData.push(result.data);
                      waterDataindex++;
                        if(waterDataindex==_self.waterData.length){
                          for(let j=0;j<result.data.length;j++){
                              if(result.data[j].indexNum.toFixed(2)>1){
                                this.tarpol.push(result.data[j])
                              }
                          }
                        }                                                          
                    }else{
                      return false;
                    }            
                  })                                 
                  return resolve(i);
                  }, 100);                 
                })
              }).then((data) => {
                 
              }).catch((err) => {
                console.log("失败");
              }); 
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消