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--;
}