gpt4 book ai didi

javascript - 随机化数组,选取 2 个随机对象,然后填充一个新数组?

转载 作者:行者123 更新时间:2023-12-03 12:10:11 29 4
gpt4 key购买 nike

例如,我有包含多个对象的数组,

var arr = ["a", "b", "c", "d"];

我想要的是从该数组中选取 2 个随机对象,例如“a”和“c”,并将这 2 个对象推送到另一个数组中,例如“arrCopy”。另一件事是,我想要数组“arrCopy”中元素的副本,这些元素也被打乱。因此,该数组应如下所示:

arrCopy = ["c", "a", "a", "c"];

最后,如果内容相同,如何比较呢?例如:

arrCopy[1] == arrCopy[2];

最佳答案

对于你的第一个问题:

var index1 = parseInt(Math.random() * arr.length, 10);
var index2 = index1;
while(index1 == index2) {
index2 = parseInt(Math.random() * arr.length, 10)
}

var arrCopy = [arr[index1], arr[index2]]

您能否澄清问题的第二部分,听起来不像“另一件事是,我想要数组“arrCopy”中元素的副本”与您的示例匹配,因为您的示例有 4元素,而不是您从数组中选取的 2 个元素。

编辑:

对于第二个问题,替换:

var arrCopy = [arr[index1], arr[index2]]

与:

var arrCopy = [arr[index1], arr[index2], arr[index1], arr[index2]]

对于你的第三个问题:

arrCopy1 === arrCopy2 将是浅比较(它们在内存中的地址是否相同)

var areEqual = true;

for (var i = 0; i < arrCopy1.length; ++i) {
if (arrCopy1 [i] !== arrCopy2[i]) {
areEqual = false;
break;
}
}

然后检查 areEual 是否深度相等(数组内容是否相同)。

关于javascript - 随机化数组,选取 2 个随机对象,然后填充一个新数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25000643/

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