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' ] ]