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