gpt4 book ai didi

javascript - 从数组中删除一个随机对象并返回它

转载 作者:行者123 更新时间:2023-11-30 09:37:54 25 4
gpt4 key购买 nike

我想从对象数组中检索一个随机对象,返回该对象,然后从数组中删除该对象。我的代码很好,但我敢打赌有更巧妙的方式来做到这一点。这是我的版本:

let deck = [{...}, {...}, {...}];
function returnCard(deck) {
let element = deck[Math.floor(Math.random() * deck.length)];
removeCard(element);
return element;
}
function removeCard(card) {
deck = deck.filter(function(el) {
return el.name !== card.name;
});
}

这看起来很冗长。我认为我正在努力解决的部分问题是我想返回,或者同时重新分配两件事,卡片和套牌。

最佳答案

您可以使用 Array#splice从数组中删除元素的方法。该方法也恰好将删除的元素作为数组返回;如果您只删除单个元素,则可以访问返回值上的索引 0,本质上是从列表中“弹出”单个随机元素。

function popRandom (array) {
let i = (Math.random() * array.length) | 0
return array.splice(i, 1)[0]
}

let array = ['A', 'B', 'C', 'D']

console.log(popRandom(array))
console.log(array)

关于javascript - 从数组中删除一个随机对象并返回它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42591276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com