将数组拆分为块假设我有一个Javascript数组,如下所示:["Element 1","Element 2","Element 3",...]; // with close to a hundred elements.什么方法适合将数组块(拆分)到许多较小的数组中,比如最多10个元素?
4 回答
桃花长相依
TA贡献1860条经验 获得超8个赞
该array.slice方法可以提取的开头,中间,或自己需要的任何目的数组的结束片,在不改变原来的数组。
var i,j,temparray,chunk = 10;for (i=0,j=array.length; i<j; i+=chunk) { temparray = array.slice(i,i+chunk); // do whatever}
UYOU
TA贡献1878条经验 获得超4个赞
如果您不知道谁将消耗您的代码(第三方,同事,您自己以后等),请尽量避免使用本机原型(包括Array.prototype)。
有一些方法可以安全地扩展原型(但不是在所有浏览器中),并且有方法可以安全地使用从扩展原型创建的对象,但更好的经验法则是遵循最小惊喜原则并完全避免这些做法。
如果您有时间,请观看Andrew Dupont的JSConf 2011演讲,“Everything is Permitted:Extending Built-ins”,以便对此主题进行讨论。
但回到这个问题,虽然上述解决方案可行,但它们过于复杂,需要不必要的计算开销。这是我的解决方案:
function chunk (arr, len) { var chunks = [], i = 0, n = arr.length; while (i < n) { chunks.push(arr.slice(i, i += len)); } return chunks;}// Optionally, you can do the following to avoid cluttering the global namespace:Array.chunk = chunk;
添加回答
举报
0/150
提交
取消