【问题标题】:JQuery - random .replace() errorJQuery - 随机 .replace() 错误
【发布时间】:2016-05-23 20:21:14
【问题描述】:

我有随机 .replace() 的问题,它总是显示相同的随机数,我试图用不同的随机数替换 $random$。

$(document).ready(function() {
  var arr = [
    '1',
    '2',
    '3',
    '4',
    '5',
    '6',
    '7',
    '8',
    '9',
    '10'
  ]
  $("#present-users").children('li.present-user').each(function() {
    arr.push($(this).find('img')[0].title);
  });
  var random = arr[Math.floor(Math.random() * arr.length)];
  var text = "$random$ $random$ $random$ $random$ $random$ $random$ $random$ $random$ $random$ $random$ $random$ $random$ $random$ $random$ $random$ $random$ $random$ $random$ $random$ $random$ $random$ $random$".replace(/\$random\$/g, random);
  alert(text)
});

jsfiddle example

谢谢, 尼古拉

【问题讨论】:

  • @daniel 我想用不同的数字替换每个 $random$,而不是相同的数字。

标签: javascript jquery variables random replace


【解决方案1】:

您只调用 Math.random() 一次,并多次使用此答案。

解决这个问题的一种方法是随机生成一个函数,例如

var arr = [10,20,30];
var random = function(){return Math.floor(Math.random() * arr.length)};
alert(random());
alert(random());
alert(arr[random()]);

【讨论】:

    【解决方案2】:

    一种解决方案是使用.replace(regex, function) 重载:

    str.replace(/\$random\$/g, function() {
        return arr[Math.floor(Math.random() * arr.length)];
    });
    

    Updated Fiddle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-20
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多