ภาพรวม
เราต้องเขียนฟังก์ชันที่รับอาร์เรย์ตัวเลขที่อาจมีอิลิเมนต์ซ้ำ ฟังก์ชันควรคืนค่าความยาวของลำดับตัวเลขซ้ำติดต่อกันที่ยาวที่สุด
ตัวอย่าง
อินพุต: const arr = [2, 1, 1, 2, 3, 3, 2, 2, 2, 1];
เอาต์พุต: 3 เพราะตัวเลข 2 ซ้ำติดต่อกัน 3 ครั้ง (มากที่สุด)
ตัวอย่างโค้ด
const arr = [2, 1, 1, 2, 3, 3, 2, 2, 2, 1];
const findLongestSequence = (arr = []) => {
const res = arr.reduce((acc, val, ind) => {
if(acc.length && acc[acc.length-1][0] === val) {
acc[acc.length-1].push(val);
} else {
acc.push([val]);
}
return acc;
}, []).reduce((acc, val) => {
return val.length > acc.length ? val : acc;
});
return res.length;
};
console.log(findLongestSequence(arr));
ผลลัพธ์ในคอนโซล
3