javascript 求解图表曲线波峰与波谷,类似股票曲线

1、通常我们对图表曲线去取波峰或者波谷的数据进行运算,

2、实现方式,用数组的第二项arr[1]与第一项arr[0]的差值进行比较

下面代码案例:

(1)从数组左到右遍历

//     var arr=[-1,2,3,5,3,2,1,10,7,5,2,4,5,11,12,9,8,7,6,4,5,6,7,3,2];     
     /*for(var i=0;i<arr.length-1;i++){
         if((arr[i+1]-arr[i])*direction>0){
             direction*=-1;
             if(direction==1){
                console.log("波峰:"+arr[i]);
             }else{
            console.log("波谷:"+arr[i]);
             }
         }
     }*/
     /*var i = 0,j=arr.length,val;
     var last;
     while(arr[i]){      
    var val = arr[i+1];
    var val2=arr[i];
    var num=val-val2;
    if(num*direction>0){
             direction*=-1;
             if(direction==1){
                console.log("波峰:"+val2);
                last=val2;
             }else{
            console.log("波谷:"+val2);
            last=val2;
             }
         };
         if(val==undefined){
        if(last<arr[i]){
            console.log("波峰:"+val2);
             }else{
            console.log("波谷:"+val2);
             }
         }         
    i++;
     }*/

(2)数组从右到左进行遍历


     //从数组最有一个计算
     var arr=[5,6,-1,2,7,5,2,5,4,2,3,3,5,6];    
     var j=arr.length,i =j-1,val;
     var direction=arr[j]<0?-1:1;
     var last;
     var flag=true;
     while(arr[i]){      
    var val = arr[i-1];
    var val2=arr[i];
    var num=val-val2;
    if(num*direction>0){
             direction*=-1;
             if(direction==1){  
                console.log("波峰:"+val2);
                last=val2;
             }else{        
            console.log("波谷:"+val2);
            last=val2;
             }
         }else if(i==j-1){
        console.log("波峰:"+val2); 
         }
         if(val==undefined){
        if(last<arr[i]){
            console.log("波峰:"+val2);
             }else{
            console.log("波谷:"+val2);
             }
         }         
    i--;
     }





  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值