Javascript 从零重复的数组中随机生成名称?
更新:不同的是,我不是在尝试制作一个列表,我是在尝试制作一个可以点击并生成随机名称的按钮 目标:单击一个按钮并从数组中随机生成一个名称。我试图能够点击按钮,一次随机显示一个名字,没有重复的名字。到目前为止,我已经能够随机选择一个名称,但名称仍然重复。如何更改代码以避免任何重复的名称Javascript 从零重复的数组中随机生成名称?,javascript,jquery,html,arrays,random,Javascript,Jquery,Html,Arrays,Random,更新:不同的是,我不是在尝试制作一个列表,我是在尝试制作一个可以点击并生成随机名称的按钮 目标:单击一个按钮并从数组中随机生成一个名称。我试图能够点击按钮,一次随机显示一个名字,没有重复的名字。到目前为止,我已经能够随机选择一个名称,但名称仍然重复。如何更改代码以避免任何重复的名称 $( ".next").click(function() { $(".intro").hide() var people = ["Andrew", "Adam", "Seth", "Mattos
$( ".next").click(function() {
$(".intro").hide()
var people = ["Andrew", "Adam", "Seth", "Mattos", "Eric"];
for(i=0;i<1;i++){
var randomPosition = Math.floor(Math.random() * people.length);
var selected = people.splice(randomPosition,1);
console.log(selected)
$('#person').text(selected)
if ($('#person').text() === "Mattos"){
$("#selectedPerson").text("Mattos")
}
if ($('#person').text() === "Andrew"){
$("#selectedPerson").text("Andrew")
}
if ($('#person').text() === "Eric"){
$("#selectedPerson").text("Eric")
}
if ($('#person').text() === "Seth"){
$("#selectedPerson").text("Seth")
}
if ($('#person').text() === "Adam"){
$("#selectedPerson").text("Adam")
}
}
});
$(“.next”)。单击(函数(){
$(“.intro”).hide()
var people=[“安德鲁”、“亚当”、“赛斯”、“马托斯”、“埃里克”];
对于(i=0;i而言,问题在于每次进入函数时都要创建数组。因此,从数组中剪切名称没有任何效果,因为下次将重新填充。需要将数组初始化移出函数
其他问题:splice()
返回一个数组,而不是单个元素,即使您仅从数组中拼接出一个元素。如果您仅循环一次,则不需要for()
循环。所有if
语句都是不需要的,因为您只是在所有情况下分配相同的字符串
你应该检查一下名字是否用完了
var people = ["Andrew", "Adam", "Seth", "Mattos", "Eric"];
$( ".next").click(function() {
$(".intro").hide();
if (people.length == 0) { // No names left to show
return;
}
var randomPosition = Math.floor(Math.random() * people.length);
var selected = people[randomPosition];
people.splice(randomPosition,1);
console.log(selected)
$('#person,#selectedPerson').text(selected);
});
为什么if
s?为什么不使用相同的selected
var来设置#selectedPerson
字段的text()
?可能会重复尝试使用按钮而不是创建列表。这与什么不同?为什么为()
只执行一次的循环?非常有用,非常有帮助。答案非常完美。感谢您抽出时间!