ฟังก์ชันนี้กลับลำดับตัวอักษรในคำที่มีความยาวเป็นเลขคี่ (odd length) เท่านั้น คำที่มีความยาวคู่จะคงเดิม
ตัวอย่าง
// Input: 'hello beautiful people' // คำที่มีความยาวคี่: 'hello' (5), 'beautiful' (9) // Output: 'olleh lufituaeb people'
ตัวอย่างโค้ด
const str = 'hello beautiful people';
const isOdd = str => str.length % 2 === 1;
const reverseOddWords = (str = '') => {
return str.split(' ')
.reduce((acc, val) => {
if (isOdd(val)) {
// กลับลำดับคำที่มีความยาวคี่
acc.push(val.split('').reverse().join(''));
} else {
acc.push(val);
}
return acc;
}, [])
.join(' ');
};
console.log(reverseOddWords(str));
การทำงาน
split(' ')- แยกคำด้วยช่องว่างreduce()- สร้างอาร์เรย์ใหม่- ตรวจสอบความยาวคำด้วย
length % 2 === 1 - คำคี่:
split('').reverse().join('')กลับลำดับ join(' ')- รวมคำกลับเป็นสตริง
ผลลัพธ์
olleh lufituaeb people