gpt4 book ai didi

javascript - 在JS中从同一个数组中获取两个不同的随机项

转载 作者:行者123 更新时间:2023-12-01 02:29:47 26 4
gpt4 key购买 nike

我希望从 JS 中的同一个数组中获取两个不同的随机项。 Stack Overflow 上有相关问题,但我无法理解Fisher Yates Shuffle作品。我需要搜索整个数组来检索这些项目,但数组很小。

目前我有一个 while 循环,但这似乎不是最有效的实现方法:

    var honeyPots = ["Fname", "EmailAddress", "Lname", "Telephone", "Address1", "Address2", "Surname", "Title"]; //Fake field names to dupe the bots!
var honeyPot = honeyPots[Math.floor(Math.random()*honeyPots.length)]; //Get a random field name from the array
var honeyPot2 = honeyPots[Math.floor(Math.random()*honeyPots.length)]; //Get a random field name from the array
while (honeyPot == honeyPot2)
{
var honeyPot2 = honeyPots[Math.floor(Math.random()*honeyPots.length)];
}

最佳答案

只需打乱数组并获取前两项:

var honeyPots = ["Fname", "EmailAddress", "Lname", "Telephone", "Address1", "Address2", "Surname", "Title"];

var results = honeyPots
.sort(function() { return .5 - Math.random() }) // Shuffle array
.slice(0, 2); // Get first 2 items

var honeyPot = results[0];
var honeyPot2 = results[1];

关于javascript - 在JS中从同一个数组中获取两个不同的随机项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22065563/

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