简介
在本实验中,我们将探索如何使用 JavaScript 从数组中随机选择元素。我们将学习如何使用 Fisher-Yates 算法对数组进行洗牌,并使用它从数组中随机选择一个或多个元素。本实验旨在增强你对数组操作的理解,并提高你在 JavaScript 中的问题解决能力。
This tutorial is from open-source community. Access the source code
💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版
在本实验中,我们将探索如何使用 JavaScript 从数组中随机选择元素。我们将学习如何使用 Fisher-Yates 算法对数组进行洗牌,并使用它从数组中随机选择一个或多个元素。本实验旨在增强你对数组操作的理解,并提高你在 JavaScript 中的问题解决能力。
为了练习编码,请打开终端/SSH 并输入 node
。以下代码利用 Fisher-Yates 算法对数组进行洗牌,并从数组中在唯一键处获取 n
个随机且唯一的元素,最多为数组的大小。
const sampleSize = ([...arr], n = 1) => {
let m = arr.length;
while (m) {
const i = Math.floor(Math.random() * m--);
[arr[m], arr[i]] = [arr[i], arr[m]];
}
return arr.slice(0, n);
};
要使用此代码,请使用一个数组和一个可选的要获取的元素数量 n
调用 sampleSize()
。如果未提供 n
,则该函数将仅从数组中随机返回一个元素。
sampleSize([1, 2, 3], 2); // [3, 1]
sampleSize([1, 2, 3], 4); // [2, 3, 1]
恭喜你!你已经完成了“数组中的 N 个随机元素”实验。你可以在 LabEx 中练习更多实验来提升你的技能。