Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การหาความต่างระหว่างค่าสูงสุดและต่ำสุดกับเงื่อนไขลำดับใน JavaScript

เราต้องหาความต่างระหว่างค่าสูงสุดและต่ำสุดในอาร์เรย์ แต่เงื่อนไขคือค่าต่ำสุดต้องปรากฏก่อนค่าสูงสุดในอาร์เรย์เดิม

ตัวอย่าง: [2, 5, 6, 12, 1] → ค่าสูงสุด 12, ต่ำสุด 1 แต่ 1 อยู่หลัง 12 → ใช้ 2 แทน → 12-2=10

ตัวอย่างโค้ด

const arr = [2, 5, 6, 12, 1];

const findLargestDifference = (arr = []) => {
  if (arr.length <= 1) { return -1; }
  let min = arr[0], diff = 0;
  for (let i = 1; i < arr.length; i++) {
    if (arr[i] > min && (arr[i] - min > diff)) { diff = arr[i] - min; }
    else if (arr[i] <= min) { min = arr[i]; }
  }
  if (diff <= 0) { return -1; }
  return diff;
};

console.log(findLargestDifference(arr));

ผลลัพธ์

ค่าที่แสดงในคอนโซลจะเป็นดังนี้:

10