我需要一个函数帮助选择一个数组中的3个随机元素,并将其从数组中删除。
答案 0 :(得分:3)
只需使用Math.random
和splice
从数组中删除一个随机元素,然后执行三次:
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
arr.splice(Math.floor(Math.random() * arr.length), 1);
arr.splice(Math.floor(Math.random() * arr.length), 1);
arr.splice(Math.floor(Math.random() * arr.length), 1);
console.log(arr);
答案 1 :(得分:0)
这是一个简单的纯js方法... 您也可以使用ecma过滤器,但我还是选择了基本过滤器。
同一行连续运行3次使我感到内心有点死了.....
var array = [1,2,3,4,5,6,7,8,9];
function removeRandomly(array, numberOfDeletions) {
for(var i=0;i<numberOfDeletions;i++){
array.splice(Math.floor(Math.random() * array.length), 1)
}
console.log(array)
}
removeRandomly(array, 3)
答案 2 :(得分:0)
我创建了一个递归函数,该函数采用数组并删除count。另外,我更喜欢以其他方式使用滤镜而不是接头。
function removeRandom(array, number) {
const randomIndex = Math.floor(Math.random() * array.length);
const result = array.filter(function(item) {
return item !== array[randomIndex]
});
if (number > 1)
return removeRandom(result, number - 1)
else
return result
}
const a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const result = removeRandom(a, 3)
console.log(result)