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

การหาผลรวมค่าน้อยที่สุดในแต่ละแถวของอาร์เรย์ 2 มิติใน JavaScript

ปัญหา

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

ตัวอย่าง

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

const arr = [
  [2, 5, 1, 6],
  [6, 8, 5, 8],
  [3, 6, 7, 5],
  [9, 11, 13, 12]
];
const sumSmallest = (arr = []) => {
  const findSmallest = array => array.reduce((acc, val) => {
    return Math.min(acc, val);
  }, Infinity);
  let sum = 0;
  arr.forEach(sub => {
    sum += findSmallest(sub);
  });
  return sum;
};
console.log(sumSmallest(arr));

ผลลัพธ์

18

คำอธิบายเพิ่มเติม

แถว 1: min=1, แถว 2: min=5, แถว 3: min=3, แถว 4: min=9 → 1+5+3+9=18 โค้ดใช้ reduce หา min เริ่มจาก Infinity