ปัญหา
สมมติว่า ฟังก์ชันทางคณิตศาสตร์ที่กำหนดโดย −
f(x) = ax2 + bx + c
โดยที่ a, b และ c เป็นค่าคงที่สามตัว
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ที่จัดเรียงของจำนวนเต็ม arr เป็นอาร์กิวเมนต์แรก และ a, b และ c เป็นอาร์กิวเมนต์ที่สอง สาม และสี่ ฟังก์ชันควรใช้ฟังก์ชัน f(x) กับแต่ละองค์ประกอบของอาร์เรย์ arr
และฟังก์ชันควรส่งคืนอาร์เรย์ที่แปลงแล้วในเวอร์ชันที่จัดเรียงแล้ว
ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −
const arr = [-8, -3, -1, 5, 7, 9]; const a = 1; const b = 4; const c = 7;
จากนั้นผลลัพธ์ควรเป็น −
const output = [ 4, 4, 39, 52, 84, 124 ];
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const arr = [-8, -3, -1, 5, 7, 9]; const a = 1; const b = 4; const c = 7; const applyFunction = (arr = [], a = 1, b = 1, c = 1) => { const apply = (num, a, b, c) => { const res = (a * (num * num)) + (b * num) + (c); return res; }; const result = arr.map(el => apply(el, a, b, c)); result.sort((a, b) => a - b); return result; }; console.log(applyFunction(arr, a, b, c));
คำอธิบายโค้ด:
ก่อนอื่นเราทำการแมปอาร์เรย์เพื่อใช้ฟังก์ชัน f(x) กับแต่ละองค์ประกอบ จากนั้นจึงจัดเรียงอาร์เรย์โดยใช้ Array.prototype.sort() แล้วจึงส่งคืนอาร์เรย์ที่จัดเรียงในที่สุด
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็น -
[ 4, 4, 39, 52, 84, 124 ]