Funzione per dividere un array in due o più array in uscita

di il
1 risposte

Funzione per dividere un array in due o più array in uscita

Ciao ragazzi.Ieri mi balenava per la testa questa funzione ed ho provato a scriverla.In pratica divido un array in tre posizionando alternativamente i numeri dell'array di partenza dentro i tre in uscita.Che ne dite,Secondo voi è una buona funzione?
Premetto che è da poco che studio programmazione e JavaScript è il mio primo linguaggio:)

var ArrayDiPartenza=[1,2,3,4,5,6,7];
var PrimoArrayDiArrivo=[];
var SecondoArrayDiArrivo=[];
var TerzoArrayDiArrivo=[];

for(i=0;i<=parseInt(ArrayDiPartenza.length/3);i++){
PrimoArrayDiArrivo[PrimoArrayDiArrivo.length]=ArrayDiPartenza[PrimoArrayDiArrivo.length+SecondoArrayDiArrivo.length+TerzoArrayDiArrivo.length];
SecondoArrayDiArrivo[SecondoArrayDiArrivo.length]=ArrayDiPartenza[TerzoArrayDiArrivo.length+PrimoArrayDiArrivo.length+SecondoArrayDiArrivo.length];
TerzoArrayDiArrivo[TerzoArrayDiArrivo.length]=ArrayDiPartenza[PrimoArrayDiArrivo.length+SecondoArrayDiArrivo.length+TerzoArrayDiArrivo.length];

}
if(PrimoArrayDiArrivo[PrimoArrayDiArrivo.length-1]===undefined){
PrimoArrayDiArrivo.length=PrimoArrayDiArrivo.length-1;

}
if(SecondoArrayDiArrivo[SecondoArrayDiArrivo.length-1]===undefined){

SecondoArrayDiArrivo.length=SecondoArrayDiArrivo.length-1;

}

if(TerzoArrayDiArrivo[TerzoArrayDiArrivo.length-1]===undefined){

TerzoArrayDiArrivo.length=TerzoArrayDiArrivo.length-1;

}

console.log(PrimoArrayDiArrivo);
console.log(SecondoArrayDiArrivo);
console.log(TerzoArrayDiArrivo);

1 Risposte

  • Re: Funzione per dividere un array in due o più array in uscita

    Io suggerirei per prima cosa di usare il tag code quando posti codice così risulta più leggibile.

    Sul codice in particolare (notare io odio js, quindi sicuramente non darò suggerimenti particolarmente validi ) mi sentirei di dire:
    * per come l'hai impostato, il parseInt non dovrebbe essere strettamente necessario (fa un truncate da quanto posso vedere, quindi saltandolo ti puoi risparmiare anche il minore-uguale lasciando semplicemente l'uguale),
    * io personalmente (per la leggibilità) eviterei tutte quelle somme di array.length, ed userei due trucchetti tipo n+i*3 per individuare il valore da inserire,
    * eviterei anche tutto il "post-processing" per correggere la lunghezza degli array mettendo dei controlli nel loop per verificare che non sto andando a prendere un valore fuori dal range dell'array iniziale,
    * invece di assegnare con array[array.lenght] io userei array.push(valore).

    HTH! ;D
Devi accedere o registrarti per scrivere nel forum
1 risposte