如何在javascript中显示顺序递减的数组元素改变其方向

如何在javascript中显示顺序递减的数组元素改变其方向,javascript,Javascript,在Javascript中,如何确定递增或递减序列改变方向的所有数字 例如 [23,45,21,90,95,67,30,15,18] 答复 产出:45 21 95 15 45为第一高,21为第一低,90>95为第一高,67为第一高,30e 返回(last==null | | |!next)?false:last!==next>e },{seq:null}) console.log(结果)函数getSequenceChanges(数组){ 常量结果=[]; 让方向=''; array.forEach

在Javascript中,如何确定递增或递减序列改变方向的所有数字

例如

[23,45,21,90,95,67,30,15,18]

答复

产出:45 21 95 15


45为第一高,21为第一低,90>95为第一高,67为第一高,30<15您可以使用
filter
方法和
thisArg
param来存储最后的条件结果

const data=[23,45,21,90,95,67,30,15,18]
const result=data.filter(函数(e,i,a){
const next=a[i+1],last=this.seq
this.seq=next>e
返回(last==null | | |!next)?false:last!==next>e
},{seq:null})
console.log(结果)
函数getSequenceChanges(数组){
常量结果=[];
让方向='';
array.forEach((元素,索引)=>{
常量newDirection=元素>数组[索引+1]?“增加”:“减少”;
if(方向和方向!==newDirection和index
您可以检查值和上一个值的增量符号是否与下一个值的增量符号相同

var数据=[23,45,21,90,95,67,30,15,18],
result=data.filter((v,i,{[i-1]:l[i+1]:r})=>
数学符号(l-v)==数学符号(r-v)
);

控制台日志(结果)您尝试过什么,它到底有什么问题?
function getSequenceChanges(array) {
  const result = [];
  let direction = '';

  array.forEach((element, index) => {
    const newDirection = element > array[index + 1] ? 'increase' : 'decrease';

    if (direction && direction !== newDirection && index < array.length - 1) {
      result.push(element);
    }

    direction = newDirection;
  });

  return result;
}

const array = [23, 45, 21, 90, 95, 67, 30, 15, 18];
console.log(getSequenceChanges(array));