อย่า mutate อาร์เรย์โดยไม่ตั้งใจ

เทคนิคคิดก่อนแก้

ถามตัวเอง: “ฉันต้องการชุดข้อมูลชุดเดิมที่เปลี่ยนไป หรือชุดใหม่แยกจากของเดิม?”

แนวทางสั้น ๆ

• แสดง/กรอง/แปลงเพื่อ UI → ชอบ filter / map (อาร์เรย์ใหม่)

• รายการเดียวที่เป็นแหล่งความจริงของแอป (เช่น โน้ตของผู้ใช้) → อาจ push/pop หรือแก้ดัชนีได้เมื่อตั้งใจ

• อย่า push เข้าอาร์เรย์ที่กำลัง filter อยู่โดยไม่เข้าใจผล

const source = ["A", "B", "C"];
const copy = source.filter(() => true); // อาร์เรย์ใหม่ (สำเนาแบบง่าย)
copy.push("D");
console.log(source); // ["A", "B", "C"] ยังไม่เปลี่ยน
console.log(copy);   // ["A", "B", "C", "D"]
บั๊กพบบ่อย: สองส่วนของหน้าแชร์อาร์เรย์เดียวกัน แล้วฝั่งหนึ่ง push ทำให้ฝั่งอื่นเพี้ยนโดยไม่รู้ตัว