使用 Array.from() [duplicate] 避免重复

Avoid duplicates using Array.from() [duplicate]

提问人:BizzyBee 提问时间:8/11/2023 更新时间:8/11/2023 访问量:24

问:

我想创建一个由 1-20 之间的四个数字组成的数组。我正在使用 Array.from() 来做到这一点,但我得到了重复的数字。我怎样才能确保我得到四个唯一的号码?这是我目前拥有的代码。

function randomArray() {
  const arr = Array.from(
    { length: 4 },
    (v, i) => Math.floor(Math.random() * 20) + 1
  );
  const arr2 = arr;
  arr2.forEach((val) => {
    if(arr2.includes(val)) {
      arr2.splice(val)
    }
  })
  console.log((arr.filter(moreThenZero)))
}

function moreThenZero(num) {
  return num > 0;
}

创建第二个函数是为了过滤掉 array.from() 生成的 0。randomArray() 中的 + 1 可能是多余的,但我不确定。创建 forEach 是为了避免 array.from() 产生的重复 #,但它不起作用。我可以使用其他方法吗?

JavaScript 数组循环 foreach

评论

0赞 Jaromanda X 8/11/2023
创建一个数字 1 到 20 的数组 ...洗牌。。。进入前 4 名
0赞 Bergi 8/11/2023
"创建 forEach 是为了避免 array.from() 产生的重复 #,但它不起作用。- 那是因为它不是副本,而且您在迭代数组时正在修改它。别这样。arr2

答: 暂无答案