Javascript 随机分裂子串
我试图从一个字符串中分离出子字符串字符,而到目前为止,我的尝试甚至在循环中循环都失败了 字符串“1234567890”的示例结果输出如下所示Javascript 随机分裂子串,javascript,Javascript,我试图从一个字符串中分离出子字符串字符,而到目前为止,我的尝试甚至在循环中循环都失败了 字符串“1234567890”的示例结果输出如下所示 12 345 6 7890 var randomChar=“” var str=“123456789”; 对于(var j=0;j
12
345
6
7890
var randomChar=“”
var str=“123456789”;
对于(var j=0;j
给你:
var substrSize;
while (str.length) {
substrSize = Math.floor(Math.random()*3)+1; // at most 4?
if (substrSize >= str.length)
randomChar = str;
else
randomChar = str.substr(0,substrSize);
str = str.substr(randomChar.length);
console.log(randomChar);
}
或者:
var j = 0;
while (j < str.length) {
var n= j+Math.floor(Math.random() * 3) + 1;
if (n> str.length) n= str.length;
console.log(str.substring(j, n));
j = n;
}
var j = 0;
while (j < str.length) {
var n= Math.floor(Math.random() * 3) + 1;
if (j+n> str.length) n= str.length-j;
console.log(str.substr(j, n));
j += n;
}
var j=0;
而(jstr.length)n=str.length;
console.log(str.substring(j,n));
j=n;
}
或者:
var j = 0;
while (j < str.length) {
var n= j+Math.floor(Math.random() * 3) + 1;
if (n> str.length) n= str.length;
console.log(str.substring(j, n));
j = n;
}
var j = 0;
while (j < str.length) {
var n= Math.floor(Math.random() * 3) + 1;
if (j+n> str.length) n= str.length-j;
console.log(str.substr(j, n));
j += n;
}
var j=0;
而(jstr.length)n=str.length-j;
console.log(str.substr(j,n));
j+=n;
}
您的代码的问题是您总是迭代str.length
次。例如,在删除前3个随机字符后,您应该从第4个开始,而不是从第2个开始
这是一个优雅的递归解决方案,与您的解决方案大不相同:
function randString(s) {
if(s.length > 0) {
var pivot = Math.ceil(Math.random() * 3);
console.info(s.substring(0, pivot));
randString(s.substring(pivot));
}
}
var randomChar=“”
var str=“123456789”;
var j=0;
而(j
您能否更具体地说明分离的随机性?有多少不同的子串是随机的吗?还是子字符串的大小是随机的?@aug每个拆分的分隔符最多可以是4个字符,并且子字符串的总拆分最好由剩余的字符决定,我希望这会有所帮助