Javascript 为什么我';在嵌套的for循环中切片这个数组,它是在无限循环中进行的吗?

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

新手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+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));