将 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 ]