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

หาอาร์เรย์ที่เล็กที่สุดจากอาร์เรย์ของอาร์เรย์ใน JavaScript

สมมติว่าเรามีอาร์เรย์ซ้อนของอาร์เรย์แบบนี้:

const arr = [
  ["LEFT", "RIGHT", "RIGHT", "BOTTOM", "TOP"],
  ["RIGHT", "LEFT", "TOP"],
  ["TOP", "LEFT"]
];

เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ดังกล่าว ฟังก์ชันควรเลือกซับอาร์เรย์ที่เล็กที่สุด (เล็กที่สุดในแง่ของจำนวนสมาชิกที่มีอยู่) และคืนค่ามัน

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

โค้ดสำหรับทำสิ่งนี้คือ:

const arr = [
  ["LEFT", "RIGHT", "RIGHT", "BOTTOM", "TOP"],
  ["RIGHT", "LEFT", "TOP"],
  ["TOP", "LEFT"]
];
const findShortest = (arr = []) => {
  const res = arr.reduce((acc, val, ind) => {
    if (!ind || val.length < acc[0].length) {
      return [val];
    };
    if (val.length === acc[0].length) {
      acc.push(val);
    };
    return acc;
  }, []);
  return res;
};
console.log(findShortest(arr));

ผลลัพธ์

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

[ [ 'TOP', 'LEFT' ] ]