ฟังก์ชันสำหรับกลับเครื่องหมายตัวเลขในอาร์เรย์: บวกเป็นลบ ลบเป็นบวก โดยแก้ไขอาร์เรย์เดิม (in-place) ด้วย forEach
ตัวอย่างโค้ด
const arr = [12, 5, 3, -1, 54, -43, -2, 34, -1, 4, -4];
const changeSign = arr => {
arr.forEach((el, ind) => {
arr[ind] *= -1;
});
};
changeSign(arr);
console.log(arr);
ผลลัพธ์
[ -12, -5, -3, 1, -54, 43, 2, -34, 1, -4, 4 ]
วิธีอื่นที่ทันสมัยกว่า
// ใช้ map สร้างอาร์เรย์ใหม่ (immutable)
const inverted = arr.map(x => -x);
// หรือใช้ for...of กับ index
for (let i = 0; i < arr.length; i++) {
arr[i] = -arr[i];
}
forEach เหมาะสำหรับการแก้ไข in-place ในขณะที่ map เหมาะสำหรับสร้างอาร์เรย์ใหม่โดยไม่เปลี่ยนต้นฉบับ