如何随机选择3个元素并将其从数组中删除?

时间:2019-06-26 07:26:20

标签: javascript arrays random

我需要一个函数帮助选择一个数组中的3个随机元素,并将其从数组中删除。

3 个答案:

答案 0 :(得分:3)

只需使用Math.randomsplice从数组中删除一个随机元素,然后执行三次:

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)

我创建了一个递归函数,该函数采用数组并删除co​​unt。另外,我更喜欢以其他方式使用滤镜而不是接头。

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)