下面是Javascript从数组中随机取出不同元素的两种方法的完整攻略。
方法1: 使用splice()方法
splice()
方法:用于删除、添加和替换数组中指定的元素,返回值是删除的元素组成的数组。- 使用
splice()
方法从数组中随机取出元素时,我们需要使用Math.random()
生成一个随机的下标值,然后将对应的元素从数组中删除并返回该元素。这样,我们就可以确保每次从数组中取出不同的元素。
以下是一个代码示例:
let arr = ["apple", "banana", "cherry", "durian", "elderberry", "fig", "grape"];
let result = [];
// 从数组中随机取出4个不同的元素
for (let i = 1; i <= 4; i++) {
let index = Math.floor(Math.random() * arr.length); // 生成随机下标
let item = arr.splice(index, 1)[0]; // 从数组中删除并返回随机元素
result.push(item); // 将随机元素加入结果数组
}
// 打印结果数组
console.log(result); // ["banana", "elderberry", "apple", "cherry"]
方法2: 使用Fisher-Yates随机排序算法
- Fisher-Yates随机排序算法:用于将一个数组随机排序。在随机排序后,我们可以从数组中取出前n个元素,这些元素是随机的且不重复。
以下是一个代码示例:
let arr = ["apple", "banana", "cherry", "durian", "elderberry", "fig", "grape"];
let result = [];
// 随机排序数组
for (let i = arr.length - 1; i >= 0; i--) {
let j = Math.floor(Math.random() * (i + 1));
[arr[i], arr[j]] = [arr[j], arr[i]];
}
// 从数组中随机取出4个不同的元素
result = arr.slice(0, 4);
// 打印结果数组
console.log(result); // ["cherry", "durian", "banana", "elderberry"]
以上就是Javascript从数组中随机取出不同元素的两种方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript从数组中随机取出不同元素的两种方法 - Python技术站