let leftSide = myArray.splice(0, Math.ceil(myArray.length/2));
//The right side is stored in "myArray"
Ad esempio:
let letters = ['a', 'b', 'c', 'd', 'e'];
let leftSide = letters.splice(0, Math.ceil(letters.length /2));
let rightSide = letters;
console.log(leftSide);
=> ['a', 'b', 'c']
console.log(rightSide);
=> ['d', 'e']
012.
Maggiori informazioni:splice
in the MDN docs
Si noti che questa modifica l'array originale. Se si desidera mantenere la matrice originale, clonare la matrice, quindi utilizzare la giunzione sulla matrice clonata. Dal SO question sugli array clonazione:
C'è stato un filo RIFERIMENTO huuuge, fornendo informazioni seguenti:
per browser lampeggio slice() è il metodo più veloce, concat() è un po 'più lento, mentre il ciclo è più lento di 2.4 volte.
per altri browser mentre il ciclo è il metodo più veloce, poiché tali browser non dispongono di ottimizzazioni interne per slice e concat.
//Fastest for Blink browsers (Opera/Chromium):
let clonedArray = originalArray.slice();
//For other browsers:
let clonedArray = [];
var i = myArray.length;
while (i--) clonedArray[i] = myArray[i];
Come potrebbe trovare quanto grande si desidera che ogni mezzo di essere? –
-1 perché è possibile determinarlo solo a pensarci. Quale sarà il punto a metà strada - l'argomento di 'splice' - essere quando la dimensione dell'array è' N'? E come si determina 'N'? –
cosa succede se c'è un numero dispari? Non c'è un "mezzo" ... basta dire! – Relic