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

การหาความต่างระหว่างตัวเลขมากที่สุดและน้อยที่สุดในอาร์เรย์โดยไม่เรียงลำดับใน JavaScript


เรามีอาร์เรย์ของตัวเลขที่จัดเรียงแบบสุ่ม งานของเราคือเขียนฟังก์ชันที่รับอาร์เรย์ดังกล่าวและคืนค่าความต่างระหว่างตัวเลขมากที่สุดและน้อยที่สุด แต่ไม่ต้องเรียงลำดับอาร์เรย์

เราจะใช้ฟังก์ชัน Array.prototype.reduce() เพื่อหาตัวเลขน้อยที่สุดและมากที่สุดจากอาร์เรย์ จากนั้นคืนค่าความต่างของทั้งสอง โค้ดสำหรับฟังก์ชันนี้คือดังนี้

ตัวอย่าง

const arr = [23, 65, 67, 23, 2, 6, 87, 23, 45, 65, 3, 234, 3];
const findDifference = arr => {
  if(!arr.length){
    return 0;
  }
  const creds = arr.reduce((acc, val) => {
    let { max, min } = acc;
    if(val > max){
      max = val;
    }
    if(val < min){
      min = val;
    }
    return { max, min };
  }, {
    max: -Infinity,
    min: Infinity
  });
  return creds.max - creds.min;
};
console.log(findDifference(arr));

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็นดังนี้

232