简介
在本实验中,我们将探讨使用函数生成的值初始化和填充数组,直到满足特定条件的概念。我们将使用 initializeArrayUntil
函数,该函数接受两个参数:conditionFn
和 mapFn
。通过本实验,你将更深入地了解如何使用此函数生成具有自定义值和条件的数组。
This tutorial is from open-source community. Access the source code
💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版
在本实验中,我们将探讨使用函数生成的值初始化和填充数组,直到满足特定条件的概念。我们将使用 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 中练习更多实验来提升你的技能。