在 JavaScript 中將 f(x) 應用於每個陣列元素


問題

假設,給定一個數學函式:

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 ]

更新於:2021年3月18日

92 次瀏覽

啟動您的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.