0
我有101个值的数组(代表0-100岁的人)。将JavaScript数组聚合成具有不同元素长度的几个数组?
什么是一气呵成建设这些聚集阵列的最好快速简单的方式:
var input = [55,33,12 .. 98 more]
var output = {
//same as input
i1 = [],
//0-5, 6-10, 11-15 ... 96-100
i5 = [],
//0-10, 11-20, 21-30 ... 91-100
i10 = [],
//0-20, 21-40, 41-60 ... 81-100
i20 = [],
}
在一个侧面说明:您会被间隔(“I1”命名这些骨料阵列“ i5“)还是按组/元素的数量(”g100“,”g20“) - 如果其他程序员遇到这些定义,那么更直观些什么?
你不需要使用一个对象输出:javascript数组是稀疏的:http://stackoverflow.com/questions/1510778/are-javascript-array-sparse因此输出可以是一个只有四个元素的数组( 1,5,10,20)。最终没有任何区别。当然,间隔时间会更直观。 – xanatos
@xanatos:但我确实使用数组作为实际输出? i1应该有101个元素; i5,20元素等。更具体地说,我对在一个循环中执行此操作的性能感兴趣,而不是单独进行。 (其中n是区间选择的数量。) – dani
它仍然很快!不要预先优化。更快地做到这一点的唯一方法是对输入数组进行排序,并以5,10和20的步长对其进行排序。其他方面,您将始终具有O(n * m)的复杂性(n = input.length,m = number间隔) – xanatos