简介
在本实验中,我们将探讨使用函数生成的值初始化和填充数组,直到满足特定条件的概念。我们将使用 initializeArrayUntil 函数,该函数接受两个参数:conditionFn 和 mapFn。通过本实验,你将更深入地了解如何使用此函数生成具有自定义值和条件的数组。
在本实验中,我们将探讨使用函数生成的值初始化和填充数组,直到满足特定条件的概念。我们将使用 initializeArrayUntil 函数,该函数接受两个参数:conditionFn 和 mapFn。通过本实验,你将更深入地了解如何使用此函数生成具有自定义值和条件的数组。
要开始练习编码,请打开终端/SSH 并输入 node。
以下是使用函数生成的值初始化和填充数组,直到满足特定条件的步骤:
arr、一个索引变量 i 和一个元素 el。do...while 循环,通过 mapFn 函数将元素添加到数组中,直到 conditionFn 函数针对给定的索引 i 和元素 el 返回 true。conditionFn 函数接受三个参数:当前索引、前一个元素和数组本身。mapFn 函数接受三个参数:当前索引、当前元素和数组本身。以下是代码:
const initializeArrayUntil = (conditionFn, mapFn) => {
const arr = [];
let i = 0;
let el = undefined;
do {
el = mapFn(i, el, arr);
arr.push(el);
i++;
} while (!conditionFn(i, el, arr));
return arr;
};
要使用 initializeArrayUntil 函数,请提供两个函数作为参数:
initializeArrayUntil(
(i, val) => val > 10, //conditionFn
(i, val, arr) => (i <= 1 ? 1 : val + arr[i - 2]) //mapFn
); // [1, 1, 2, 3, 5, 8, 13]
这段代码使用斐波那契数列初始化一个数组,直到第一个大于 10 的数字。conditionFn 函数检查当前值是否大于 10,mapFn 函数生成序列中的下一个数字。
恭喜你!你已经完成了“初始化数组直到满足条件”实验。你可以在 LabEx 中练习更多实验来提升你的技能。