ปัญหา
เราต้องเขียนฟังก์ชัน 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]))`