สมมติว่าเรามีอาร์เรย์ซ้อนของอาร์เรย์แบบนี้:
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' ] ]