JQuery - 随机 .replace() 错误

JQuery - random .replace() error

本文关键字:错误 replace 随机 JQuery      更新时间:2023-09-26

我对随机.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 示例

谢谢尼古拉

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

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

更新的小提琴

你只调用了一次 Math.random(),并多次使用这个答案。

解决此问题的一种方法是使函数随机化,例如

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