Javascript 为什么我';在嵌套的for循环中切片这个数组,它是在无限循环中进行的吗?
新手JavaScript问题 此函数用于从给定字符串生成路由密码 为什么这会导致无限循环Javascript 为什么我';在嵌套的for循环中切片这个数组,它是在无限循环中进行的吗?,javascript,arrays,for-loop,slice,Javascript,Arrays,For Loop,Slice,新手JavaScript问题 此函数用于从给定字符串生成路由密码 为什么这会导致无限循环 function routecipher(string, rows, columns){ var mArray = string.split('') var newArray = [] for (i = columns; i < mArray.length; i+=columns) { for (j = 0; j < mArray.length - columns; j+co
function routecipher(string, rows, columns){
var mArray = string.split('')
var newArray = []
for (i = columns; i < mArray.length; i+=columns) {
for (j = 0; j < mArray.length - columns; j+columns){
newArray.push(mArray.slice(j, i))
}
}
}
函数路由标识符(字符串、行、列){
var mArray=string.split(“”)
var newArray=[]
对于(i=列;i
编辑:有几个错误。导致无限循环的是j+列,而不是j+=列。这是新的工作代码
function encryption(string, r, c){
var mArray = string.split('')
var newArray = []
for (i = c; i <= mArray.length; i+=c) {
for (j = i - c; j < i; j+=c){
newArray.push(mArray.slice(j, i))
}
}
}
函数加密(字符串、r、c){
var mArray=string.split(“”)
var newArray=[]
对于(i=c;i我认为j+columns
应该是j+=columns
。缺少等号。可能是因为在第二个循环中,循环的第三个参数没有赋值。也许你的意思是“j+=columns”而不仅仅是“j+columns”。我认为你真的想这样做:
函数routecipher(字符串、列、行=无穷大){
设s=string.split(“”),a=[],r=0;
while(s.length&&r<行){
a、 push(s.splice(0,列));r++;
}
返回a;
}
log(routecipher('我不知道这个字符串应该包含什么',3));
log(routecipher('我不知道这个字符串应该包含什么',4,5));