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
    4,764
    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.
    Prima di postare considera che tra i link utili puoi trovare il 75% delle risposte alle tue domande; il 20% tra i post del forum; il 15% sul web.
    Ti resta... humm spè

    Le cattive domande sono quelle che non meritano risposta, le buone domande sono quelle che non hanno risposta
    L'Itailano non e nu'opnioine. E' improntate uslaro correattemtne sul froum. Garize!

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 © 2020 vBulletin Solutions, Inc. All rights reserved.