Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การใช้ f(x) กับแต่ละองค์ประกอบอาร์เรย์ใน JavaScript


ปัญหา

สมมติว่า ฟังก์ชันทางคณิตศาสตร์ที่กำหนดโดย −

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 ]