ฟังก์ชันนี้ประมวลผลสตริงที่ประกอบด้วย '+' และ '-' เท่านั้น โดยใช้กฎการลดรูปแบบคู่:
++→+--→++-หรือ-+→-
ตัวอย่าง
// Input: '+++-+-++---+-+--+-' // Output: '-'
ตัวอย่างโค้ด
const str = '+++-+-++---+-+--+-';
const netResult = (str = '') => {
return str.split('').reduce((acc, val) => {
// ถ้าตัวอักษรปัจจุบันเท่ากับค่าสะสม → '+'
// ไม่เท่ากัน → '-'
return acc === val ? '+' : '-';
});
};
console.log(netResult(str));
หลักการทำงาน
ใช้ reduce() ประมวลผลทีละตัวอักษร:
- ค่าเริ่มต้นคือตัวอักษรตัวแรก
- เปรียบเทียบตัวอักษรปัจจุบันกับค่าสะสม
- เหมือนกัน → '+', ต่างกัน → '-'
- ค่าผลลัพธ์กลายเป็นค่าสะสมสำหรับรอบถัดไป
ผลลัพธ์
-
คณิตศาสตร์เบื้องหลัง: เป็นการจำลองการคูณเครื่องหมาย (+ × + = +, - × - = +, + × - = -)