2012-07-03 16 views
52

का हिस्सा एक सरणी विभाजित करने के लिए कैसे में विभाजित सरणी 4 टुकड़ों में है, जो n मदों की एक अधिकतम होते हैं (जो 10 आइटम है)।एन लंबाई

var a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']; 
//a function splits it to four arrays. 
console.log(b, c, d, e); 

और यह प्रिंट:

['a', 'b', 'c'] 
['d', 'e', 'f'] 
['j', 'h', 'i'] 
['j'] 

ऊपर मान लिया गया n = 3, हालांकि, मूल्य गतिशील होना चाहिए।

var arrays = [], size = 3; 

while (a.length > 0) 
    arrays.push(a.splice(0, size)); 

console.log(arrays); 

देखें splice सरणी की विधि:

धन्यवाद

+4

आप कुछ भी करने की कोशिश की ?? – Don

+0

नहीं, मैं बस 'slice' splice' डॉक्स .. – mrdaliri

+2

डुप्लिकेट प्रश्न, पढ़ सकते हैं और' देखना जवाब: http://stackoverflow.com/a/10456644/1361399 –

उत्तर

150

यह ऐसा ही कुछ हो सकता है।

41

हो सकता है कि इस कोड को मदद करता है:

var chunk_size = 10; 
var arr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]; 
var groups = arr.map(function(e,i){ 
    return i%chunk_size===0 ? arr.slice(i,i+chunk_size) : null; 
}) 
.filter(function(e){ return e; }); 
+5

मुझे आपका समाधान पसंद है। मैंने इसे थोड़ा साफ कर दिया और इसे जेएस बिन बनाया। धन्यवाद! http://jsbin.com/dokivomuzake/1/edit?js,console – dbasch

+0

बहुत बेहतर कार्यात्मक समाधान। –

+3

'const विभाजनArray = (सरणी, आकार) => array.map ((ई, i) => (i% आकार === 0) ? Array.slice (i, i + size) : शून्य ) .filter ((ई) => ई) ' – ztrange

संबंधित मुद्दे