将数组拆分为块

将数组拆分为块

假设我有一个Javascript数组,如下所示:

["Element 1","Element 2","Element 3",...]; // with close to a hundred elements.

什么方法适合将数组块(拆分)到许多较小的数组中,比如最多10个元素?


江户川乱折腾
浏览 767回答 4
4回答

桃花长相依

该array.slice方法可以提取的开头,中间,或自己需要的任何目的数组的结束片,在不改变原来的数组。var&nbsp;i,j,temparray,chunk&nbsp;=&nbsp;10;for&nbsp;(i=0,j=array.length;&nbsp;i<j;&nbsp;i+=chunk)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;temparray&nbsp;=&nbsp;array.slice(i,i+chunk); &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;do&nbsp;whatever}

UYOU

如果您不知道谁将消耗您的代码(第三方,同事,您自己以后等),请尽量避免使用本机原型(包括Array.prototype)。有一些方法可以安全地扩展原型(但不是在所有浏览器中),并且有方法可以安全地使用从扩展原型创建的对象,但更好的经验法则是遵循最小惊喜原则并完全避免这些做法。如果您有时间,请观看Andrew Dupont的JSConf 2011演讲,“Everything is Permitted:Extending Built-ins”,以便对此主题进行讨论。但回到这个问题,虽然上述解决方案可行,但它们过于复杂,需要不必要的计算开销。这是我的解决方案:function&nbsp;chunk&nbsp;(arr,&nbsp;len)&nbsp;{ &nbsp;&nbsp;var&nbsp;chunks&nbsp;=&nbsp;[], &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;=&nbsp;0, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;=&nbsp;arr.length; &nbsp;&nbsp;while&nbsp;(i&nbsp;<&nbsp;n)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;chunks.push(arr.slice(i,&nbsp;i&nbsp;+=&nbsp;len)); &nbsp;&nbsp;} &nbsp;&nbsp;return&nbsp;chunks;}//&nbsp;Optionally,&nbsp;you&nbsp;can&nbsp;do&nbsp;the&nbsp;following&nbsp;to&nbsp;avoid&nbsp;cluttering&nbsp;the&nbsp;global&nbsp;namespace:Array.chunk&nbsp;=&nbsp;chunk;
打开App,查看更多内容
随时随地看视频慕课网APP