Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การลดรูปสตริงเครื่องหมาย + และ - (Neutralisation) - JavaScript

ฟังก์ชันนี้ประมวลผลสตริงที่ประกอบด้วย '+' และ '-' เท่านั้น โดยใช้กฎการลดรูปแบบคู่:

  • ++ → +
  • -- → +
  • +- หรือ -+ → -

ตัวอย่าง

// Input: '+++-+-++---+-+--+-'
// Output: '-'

ตัวอย่างโค้ด

const str = '+++-+-++---+-+--+-';

const netResult = (str = '') => {
  return str.split('').reduce((acc, val) => {
    // ถ้าตัวอักษรปัจจุบันเท่ากับค่าสะสม → '+'
    // ไม่เท่ากัน → '-'
    return acc === val ? '+' : '-';
  });
};

console.log(netResult(str));

หลักการทำงาน

ใช้ reduce() ประมวลผลทีละตัวอักษร:

  • ค่าเริ่มต้นคือตัวอักษรตัวแรก
  • เปรียบเทียบตัวอักษรปัจจุบันกับค่าสะสม
  • เหมือนกัน → '+', ต่างกัน → '-'
  • ค่าผลลัพธ์กลายเป็นค่าสะสมสำหรับรอบถัดไป

ผลลัพธ์

-

คณิตศาสตร์เบื้องหลัง: เป็นการจำลองการคูณเครื่องหมาย (+ × + = +, - × - = +, + × - = -)