Javascript代码getoption

时间:2016-04-17 21:19:55

标签: javascript

  

写一个函数getoption(m,i),它取一个参数m,一个字符串   由逗号“,”和整数i≥-1分隔的单词并返回第i个   在m。如果i = -1,则返回随机字,否则返回第i个字   退回。不需要进行错误检查。

     

例如,getoption(“hello,hi,why,ok”,1)必须返回hello。

     

getoption("hello,hi,why,ok",4)必须返回确定。

     

getoption("hello,hi,why,ok",-1)可以返回hello,hi,是谁   确定。

     

提示:您需要按字符“,”拆分字符串m。这将   导致一系列单词。记住第一个单词将是索引   0 !!!!现在,如果我大于-1,则再次返回元素i + 1   数组的起始索引是0.如果i = -1则生成随机数   数字从0到array.length-1然后返回相应的单词   这个数字。

您好,我已经编写了下面的代码,我在第6行有一个类型错误,我不知道如何修复它。有人可以帮忙吗?

function getoption(m, i) {
  var num = m + Math.floor((m + 1) * Math.random());
  var j = i.indexOf(num);

  while (j != -1) {
    num = m + Math.floor((m + 1) * Math.random());
    j = i.indexOf(num);
  }

  return (num);
}

document.write(getoption("hello,hi,why,ok", -1))

2 个答案:

答案 0 :(得分:0)

为了获得想要的结果,我建议将字符串拆分为带有String#split()的字数组,并将其存储在适当的变量中。

然后我建议检查索引是否等于c并获得一个带有数组长度和Math.random()的新索引。

现在返回带有单词数组索引的元素。



-1




答案 1 :(得分:0)

您可以更简单地减少功能。

尝试类似的东西:

function getoption(m, i) {
  var words = m.split(",");
  
  if (i == -1) {
    i = Math.floor(Math.random() * words.length);
  }
  return words[i];
}

document.write(getoption("hello,hi,why,ok",-1));
document.write("<br>");
document.write(getoption("hello,hi,why,ok",0));
document.write("<br>");
document.write(getoption("hello,hi,why,ok",2));

我希望有帮助:D