JS给定一个字符串如何随机打乱它

JavaScript04

JS给定一个字符串如何随机打乱它,第1张

<!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/htmlcharset=UTF-8"> <title>RunJS 演示代码</title> <script> // 插入随机字符串的方法var fuck = function(str, desc) {var words = "abcdefghijklmnopqrstuvwxyz".split("") var result = "" for (var i = 0i <str.lengthi += desc) {var rand = words[Math.floor(Math.random() * words.length)].fontcolor("red") result += str.substring(i, i + desc) if (i + desc <= str.length) {result += rand }}return result }var desc = 1// 指定间隔var str = "我们的祖国是花园,花园的花朵真鲜艳。"// 字符串var result = fuck(str, desc) onload = function() {document.body.innerHTML = result }</script></head><body></body></html>

就是生成无重复随机数了。我跟你说下原理,代码的话你自己就明白了。

每次生成一个随机数,再判断生成的随机数,是否存在于已经生成的随机数群组中,如果存在,则重复执行生成随机数这个动作。

这样就可以保证生成的随机数没有重复。而且位置也没有一定的规律。

我查了下手册,还有一个更简单的方法就是使用函数:shuffle( array &array )

该函数的作用是随机打乱一个数组。

这样就简单了,你先生成一个数组(1-100),然后使用此函数将数组随机打乱,这样就生成了无重复的随机数组。

以下代码亲测可行。

<?php

$numbers = range(1,100)//生成1-100之间的数组。

srand((float)microtime()*1000000)//建立随机种子

shuffle($numbers)//打乱数组

$i=0//换行标记

foreach ($numbers as $number) {//遍历数组

$i++//标记自增

echo "$number "//输出数值

if($i %10==0) echo "<br>"//如果输出10个则换行。

}

?>

MD写完了,发现你问的是JS的,我回答的是PHP的,不过方法1是通用的。JS中不知道有没有这样的函数。