下面这个函数是创建数组切片,push是无限循环.任何人都可以试图证明这一点.
function MyFunction(arr, size) {
var newArr = [];
for(var i=0; i<arr.length; i+size)
{
newArr.push(arr.slice(i,i+size));
}
return newArr;
}
Run Code Online (Sandbox Code Playgroud)
我能够通过下面的while循环实现我的要求,尽管看起来几乎相似.
function MyFunction(arr, size) {
var newArr = [];
var i = 0;
while(i < arr.length)
{
newArr.push(arr.slice(i,i+size));
i = i + size;
}
return newArr;
}
Run Code Online (Sandbox Code Playgroud)
样本输入: - myFunction(["a","b","c","d"],2);
样本输出: - [["a","b"],["c","d"]]
use*_*559 10
我认为i+size
应该是i += size
或i = i + size
.
在第一个循环中,你永远不会递增i
.
编辑
您可能还想更改循环体以匹配while
循环.
例如,将它们放在一起,这个for
循环应该等同于你的while
循环:
for (var i = 0; i < arr.length; i += size) {
newArr.push(arr.slice(i, i + size));
}
Run Code Online (Sandbox Code Playgroud)