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

กลับเครื่องหมายค่าในอาร์เรย์ (Invert Signs) - JavaScript

ฟังก์ชันสำหรับกลับเครื่องหมายตัวเลขในอาร์เรย์: บวกเป็นลบ ลบเป็นบวก โดยแก้ไขอาร์เรย์เดิม (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 เหมาะสำหรับสร้างอาร์เรย์ใหม่โดยไม่เปลี่ยนต้นฉบับ