Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    randomizzare array a gruppi di 3

    Buongiorno,
    ho un problema con una funzione che mi mette in ordine random un' array, questa è la funzione:

    codice:
    function shuffleCapB(d) {
        var o = d.slice();
        var j, x, i;
        l = o.length - 1;
    
    
        //    for (var j, x, i = o.length; i; j = randNum(i), x = o[--i], o[i] = o[j], o[j] = x);
        for (i = l; i >= 0; i--) {
            j = randNum((i + 1));
            x = o[i];
            o[i] = o[j];
            o[j] = x;
            console.log("d", d);
            console.log("j", j);
            console.log("x", x);
            console.log(" o[i]", o[i]);
            console.log(" o[j]", o[j]);
        }
        return o;
    }
    che mi produce questo risultato:

    0: {IdQuiz: "611", Blocco: "00397", Domanda: "02", Risposta: "FALSE", Capitolo: "00", …}
    1: {IdQuiz: "264", Blocco: "00249", Domanda: "03", Risposta: "FALSE", Capitolo: "00", …}
    2: {IdQuiz: "169", Blocco: "00084", Domanda: "01", Risposta: "TRUE", Capitolo: "00", …}
    3: {IdQuiz: "254", Blocco: "00128", Domanda: "02", Risposta: "FALSE", Capitolo: "00", …}
    4: {IdQuiz: "1079", Blocco: "00461", Domanda: "02", Risposta: "FALSE", Capitolo: "00", …}
    5: {IdQuiz: "444", Blocco: "00488", Domanda: "03", Risposta: "FALSE", Capitolo: "00", …}
    6: {IdQuiz: "1075", Blocco: "00458", Domanda: "01", Risposta: "TRUE", Capitolo: "00", …}
    7: {IdQuiz: "121", Blocco: "00044", Domanda: "01", Risposta: "TRUE", Capitolo: "00", …}
    8: {IdQuiz: "1385", Blocco: "00267", Domanda: "02", Risposta: "FALSE", Capitolo: "00", …}
    9: {IdQuiz: "179", Blocco: "00034", Domanda: "02", Risposta: "FALSE", Capitolo: "00", …}

    io però avrei bisogno di spostare di ordine le mie righe a gruppi di 3 tenendo conto che le 3 che si spostano hanno tutte lo stesso Blocco, quindi vorrei ottenere una cosa del genere:
    0: {IdQuiz: "611", Blocco: "00397", Domanda: "01", Risposta: "TRUE", Capitolo: "00", …}
    1: {IdQuiz: "613", Blocco: "00397", Domanda: "03", Risposta: "FALSE", Capitolo: "00", …}
    2: {IdQuiz: "612", Blocco: "00397", Domanda: "02", Risposta: "FALSE", Capitolo: "00", …}
    3: {IdQuiz: "256", Blocco: "00128", Domanda: "03", Risposta: "FALSE", Capitolo: "00", …}
    4: {IdQuiz: "255", Blocco: "00128", Domanda: "02", Risposta: "FALSE", Capitolo: "00", …}
    5: {IdQuiz: "254", Blocco: "00128", Domanda: "01", Risposta: "TRUE", Capitolo: "00", …}
    ECC..

    qualcuno ha qualche idea???

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,690
    Ciao, non so se hai già risolto, in caso contrario può essere utile chiarire quale sia la situazione iniziale, magari fornendo un esempio dell'array di partenza.

    In particolare, se l'array iniziale è già ordinata a blocchi, quindi gli oggetti risultano ordinati a tre a tre secondo la proprietà "Blocco", e se tutti i blocchi sono composti esattamente da 3 oggetti, si potrebbe pensare di splittare inizialmente l'array a gruppi di 3 oggetti (che appartengono quindi allo stesso "Blocco") di conseguenza mescolare gli oggetti dei singoli gruppi e quindi restituire il risultato.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.