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

การสร้างอาร์เรย์การบวก/ลบสัมพัทธ์กับสมาชิกแรกใน JavaScript

ปัญหา

เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์จำนวนเต็มบวก ฟังก์ชันควรแมปอาร์เรย์นี้เป็นอาร์เรย์ของสตริงจำนวนเต็ม อาร์เรย์ควรมีจำนวนที่เราควรบวก/ลบกับสมาชิกแรกเพื่อให้ได้สมาชิกที่ตรงกัน

เช่น:

[4, 3, 6, 2]

ควรคืนค่า:

['+0', '-1', '+2', '-2']

ตัวอย่าง

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

const arr = [4, 3, 6, 2];
const buildRelative = (arr = []) => {
  const res = [];
  let num = '';
  for (let i of arr) {
    if (i - arr[0] >= 0) {
      num += '+' + (i - arr[0]);
    } else {
      num += i - arr[0];
    }
    res.push(num);
    num = '';
  }
  return res;
};
console.log(buildRelative(arr));

ผลลัพธ์

[ '+0', '-1', '+2', '-2' ]

คำอธิบายเพิ่มเติม

คำนวณ diff = arr[i] - arr[0] แล้ว format: diff≥0 → '+'+diff, diff<0 → diff (มี - อยู่แล้ว) สำหรับ [4,3,6,2]: 0, -1, +2, -2 สามารถเขียนสั้นด้วย map: `arr.map(x => (x>=arr[0]?'+':'') + (x-arr[0]))`