使用Javascript从字符串中返回随机选择

使用Javascript从字符串中返回随机选择,javascript,Javascript,我想要一个关于为什么我的代码不工作的建议。其思想是从一个名称列表中随机选择三个名称,但不能两次返回相同的名称。我想离这里很近,但我错过了一些东西。任何帮助都将不胜感激 (function(){ var randomNames = function(){ var names = ["Jeffrey, Ronald, Superman, Lyndon, Alison"]; var myNames = []; for (var i = 0; i < 3

我想要一个关于为什么我的代码不工作的建议。其思想是从一个名称列表中随机选择三个名称,但不能两次返回相同的名称。我想离这里很近,但我错过了一些东西。任何帮助都将不胜感激

(function(){

  var randomNames = function(){
      var names = ["Jeffrey, Ronald, Superman, Lyndon, Alison"];
      var myNames = [];

      for (var i = 0; i < 3; i++){
          var newNames = Math.floor(Math.random() * names.length);
          var randomAllNames = names[newNames];
          names.splice(newNames, 1);
          myNames.push(names);
          console.log(myNames);
      }
         return randomAllNames;

  }; randomNames();
})();
(函数(){
var randomNames=函数(){
var names=[“杰弗里、罗纳德、超人、林登、艾莉森”];
var myNames=[];
对于(变量i=0;i<3;i++){
var newNames=Math.floor(Math.random()*names.length);
var randomAllNames=名称[新名称];
名称。拼接(新名称,1);
myNames.push(名称);
console.log(myNames);
}
返回所有名称;
};随机名称();
})();

注意
myNames.push(randomAllNames)而且您的数组只是一个长字符串

(function(){

  var randomNames = function(){
      var names = ["Jeffrey", "Ronald", "Superman", "Lyndon", "Alison"];
      var myNames = [];

      for (var i = 0; i < 3; i++){
          var newNames = Math.floor(Math.random() * names.length);
          var randomAllNames = names[newNames];
          names.splice(newNames, 1);
          myNames.push(randomAllNames);
          console.log(myNames);
      }
         return randomAllNames;

  }; randomNames();
})();
(函数(){
var randomNames=函数(){
变量名称=[“杰弗里”、“罗纳德”、“超人”、“林登”、“艾莉森”];
var myNames=[];
对于(变量i=0;i<3;i++){
var newNames=Math.floor(Math.random()*names.length);
var randomAllNames=名称[新名称];
名称。拼接(新名称,1);
myNames.push(randomAllNames);
console.log(myNames);
}
返回所有名称;
};随机名称();
})();

您的数组只包含一个元素(名称列表),而不是每个名称包含一个元素。此外,每次循环迭代时,您都要将整个名称数组添加到myNames数组中!!当我输入console.log(myNames)时;它返回3个单独的数组。艾米:我返回了错误的变量?[“Alison”]main.js:19[“Alison”,“Ronald”]main.js:19[“Alison”,“Ronald”,“Superman”]是的,内部函数应该返回
myNames
,如果您想使用其他结果,最后一行也应该是
return randomNames()
,因为我将使用结果添加到页面上的HTML中。每个随机名称将作为列表项显示在中