cuốn sách gpt4 ai đã làm

javascript - 从数组中删除所有项目(单独)

In lại Tác giả: Walker 123 更新时间:2023-11-28 11:06:50 27 4
mua khóa gpt4 Nike

我有一个数组,其中包含有限数量的项目。我想随机删除项目,直到所有项目都被使用过一次。

示例 [1,2,3,4,5]

使用了随机数 5,所以我不想再这样了。使用了随机数 2,所以我不想再这样了。等等..

我可以有另一个已用数字列表,并检查新的随机数是否不在其中,但是当数组中 50 个数字中只剩下 1 个或两个数字时,这可能需要很长时间。

有没有办法从 JavaScript 数组中删除项目?它会创建一个数组吗?这会效率低下吗?

数组是这样做的错误方法吗?

biên tập:这里有一些很好的答案。我最终随机化了数组列表,然后拼接第一个项目,即我取出的项目。

câu trả lời hay nhất

结合使用Math.random()splice():

var arr = [1, 2, 3, 4, 5],
i;

while ( arr.length ) {
i = Math.floor( Math.random() * arr.length );
alert( arr.splice(i, 1) );
}

现场演示: http://jsfiddle.net/simevidas/n2Bmk/

gia hạn:您可以使用此函数从数组中删除随机项目:

function popRandomItem(arr) {   
return arr.length ?
arr.splice(Math.floor(Math.random() * arr.length), 1)[0] : null;
}

因此,如果您有一个数组 x,则 popRandomItem(x) 将从该数组中删除一个随机项目并返回该项目。 (如果x是一个空数组,该函数将返回vô giá trị. )

现场演示: https://jsbin.com/wetumec/edit?js,console

关于javascript - 从数组中删除所有项目(单独),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5267769/

27 4 0
Walker 123
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress