javascript - 在 JavaScript 中每隔一个空格插入随机数

标签 javascript string random

我希望能够采用一个由字符串形式的数字组成的变量,例如将其称为 str,并在其中每隔一个空格插入一个 1 到 10 之间的随机数那个字符串。现在我有这个代码:

str.toString().match(/.{1}/g).join((Math.floor((Math.random() * 10) 
+ 1)).toString())

这几乎可以做到这一点,但是它会生成一个随机数并每次插入该随机数,而不是为每个其他空间生成新的随机数。例如,如果 str = '1234567890',我希望它变成类似 18293547596173889302 的内容,但我得到类似 182838485868789808 的内容。任何帮助将不胜感激,谢谢!

最佳答案

您显示的代码计算 (Math.floor((Math.random() * 10) + 1)).toString() 部分一次,并将结果传递给 .join() 方法。

我会考虑使用字符串 .replace() 方法,因为这样您就可以使用每次替换都会调用一次的函数:

var str = '1234567890'

var output = str.replace(/./g, function(m) { 
  return m + Math.floor((Math.random() * 10) + 1)
})

console.log(output)

/./g 匹配每个字符,一次一个,并且匹配的字符将传递给回调函数,以便您可以在替换中使用它。

请注意,+ 连接运算符会自动将随机数转换为字符串,因此您无需自己调用 .toString()

编辑:请注意,您的原始 .join() 代码在现有数字之间插入了新数字,因此在之后没有添加任何内容输入的最后一个字符,但您的示例输出在每个现有数字(包括最后一个数字)之后添加了一个随机数字。我的代码执行后者。如果您不想在末尾添加最后一个随机数字,可以通过对结果调用 .slice(0, -1) 将其删除。

关于javascript - 在 JavaScript 中每隔一个空格插入随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45093976/

相关文章:

c# - 在内存方面,将一个长的非动态字符串存储为单个字符串对象还是让程序从重复部分构建它更好?

random - 数组长度范围内的 Ada 随机整数

javascript - 尝试实现特定于 Django 模型属性的“阅读更多”按钮

javascript - 如何删除部分媒体记录器?

c++ - 用于将 std::string 转换为 QString 的包装器?

python - 如何使用 __str__ 方法打印列表?

css - 随机显示 4Tab of 12Tab 并隐藏另一个标签

python - 以最小差异大于 Python 列表中的值对大多数数字进行采样的最快方法

javascript - 如何取消 AngularJS 中的待处理请求?

javascript - Highstock - 更改输入范围超出数据最大值