我有一个错误,由于某种原因,号码被更改了,而不是名字

I have an error and for some reason the numbers are being changed and not the names?

本文关键字:错误 有一个 由于某种原因 号码      更新时间:2023-09-26

这是我需要帮助的问题。

我需要让这些名字随意更改。我还需要两个选择的名称相同。

如果你注意到了,这两个随机的名字可能是相同的。我犯了一些错误,我需要修复这个问题,以便第一个和第二个名称是唯一的。我想将生成的第一个名称传递给第二个名称的getoption函数,这样第二个名字就不能是这个名称。这就是我遇到的问题,有人能帮帮我吗?

到目前为止,我已经有了改变数字的代码,但我不确定如何随机化名称

 function getrandomnumber(min, max, notin) {
   return min + Math.floor((max - min + 1) * Math.random())
 }
 function getoption(s, ch, num) {
   var a = s.split(ch);
   return a[num - 1];
 }
 var marymoney = getrandomnumber(50, 100, "");
 var johnmoney = getrandomnumber(50, 100, "");
 var maryitem = getrandomnumber(5, 20, "");
 var johnitem = getrandomnumber(5, 20, "");
 var marystuff = getoption("notebook,pencil,ruler,pen,eraser,binder,backpack", ",", getrandomnumber(1, 7));
 var johnstuff = getoption("notebook,pencil,ruler,pen,eraser,binder,backpack", ",", getrandomnumber(1, 7));
 var totalleft = marymoney + johnmoney - maryitem - johnitem;
 var str = "Mary had $" + marymoney + " and John had $" + johnmoney + ".          Mary buys a " + marystuff + " for $" + maryitem + " and John buys a " + +"            for $" + johnitem + ". They have $" + totalleft + ".";
 document.write(str);

试试这个,它对我有用:

function getrandomnumber(min, max, notin) {
    return min + Math.floor((max - min + 1) * Math.random())
}
function getoptions(s, ch) {
    var a = s.split(ch);
    a.sort( function() { return 0.5 - Math.random() } );
    return a;
}
var marymoney = getrandomnumber(50, 100, "");
var johnmoney = getrandomnumber(50, 100, "");
var maryitem = getrandomnumber(5, 20, "");
var johnitem = getrandomnumber(5, 20, "");
var stuff = "notebook,pencil,ruler,pen,eraser,binder,backpack";
var options = getoptions(stuff, ',');
var marystuff = options[0];
var johnstuff = options[1];
var totalleft = marymoney + johnmoney - maryitem - johnitem;
var str = "Mary had $" + marymoney + " and John had $" + johnmoney +
        ".          Mary buys a " + marystuff + " for $" + maryitem +
        " and John buys a " + johnstuff + "            for $" + johnitem +
        ". They have $" + totalleft + ".";
document.write(str);

您可以添加以下内容以确保项目名称不相同:

while(marystuff === johnstuff) {
  johnstuff = getoption("notebook,pencil,ruler,pen,eraser,binder,backpack", ",", getrandomnumber(1, 7));
}

最后您的str中也缺少johnstuff

试着运行下面的代码,看看它是否有效:

var person1, person2;
function getPeople() {
  var people = ['Mary', 'John', 'Misa', 'Steve', 'Amy', 'David'];
  person1 = people[Math.floor(Math.random() * people.length)];
  person2 = people[Math.floor(Math.random() * people.length)];
  while (person1 === person2) {
    person2 = people[Math.floor(Math.random() * people.length)];
  }
}
function getrandomnumber(min, max, notin) {
   return min + Math.floor((max - min + 1) * Math.random());
 }
 function getoption(s, ch, num) {
   var a = s.split(ch);
   return a[num - 1];
 }
 var marymoney = getrandomnumber(50, 100, "");
 var johnmoney = getrandomnumber(50, 100, "");
 var maryitem = getrandomnumber(5, 20, "");
 var johnitem = getrandomnumber(5, 20, "");
 var marystuff = getoption("notebook,pencil,ruler,pen,eraser,binder,backpack", ",", getrandomnumber(1, 7));
 var johnstuff = getoption("notebook,pencil,ruler,pen,eraser,binder,backpack", ",", getrandomnumber(1, 7));
while(marystuff === johnstuff) {
  johnstuff = getoption("notebook,pencil,ruler,pen,eraser,binder,backpack", ",", getrandomnumber(1, 7));
}
 getPeople();
 var totalleft = marymoney + johnmoney - maryitem - johnitem;
 var str = person1 + " had $" + marymoney + " and " + person2 + " had $" + johnmoney + ". " + person1 + " buys a " + marystuff + " for $" + maryitem + " and " + person2 + " buys a " + johnstuff + " for $" + johnitem + ". They have $" + totalleft + ".";
 document.write(str);

相关文章: