Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Aggiungere oggetti ad un oggetto

  1. #1

    Aggiungere oggetti ad un oggetto

    ciao!

    sostanzialmente devo creare una stringa json da inviare tramite ajax.
    una parte dei valori di valori li prendo dai campi di un form, altri li calcolo.
    inoltre utilizzo anche un for per iterare sui campi.

    quindi io pensavo di costruire un Object ad ogni iterazione.
    alla fine dell'iterazione aggiungere l'Object corrente ad un Object "generico".
    su quest'ultimo comporre la stinga json:
    codice:
        var clfo = $('#utenti').val();
        var data = $('#data').val();
        if (clfo != '*' && is.not.empty(data)) {
            var obj = new Object();
            for (var i = 0; i < 10; i++) {
                var tmpObj = new Object();
                var prodotti = $('#prodotti_' + i).val();
                var qta = parseFloat($('#qta_' + i).val());
                var costoUni = parseFloat($('#costo_uni_' + i).val());
                var margine = parseFloat($('#margine_' + i).val());
                if (is.not.nan(qta) && is.not.nan(costoUni) && is.not.nan(margine)) {
                    var prUni = costoUni + (costoUni / 100 * margine);
                    var costoTot = costoUni * qta;
                    var deltaUni = prUni - costoUni;
                    var deltaTot = deltaUni * qta;
    
                    tmpObj.clfo = clfo;
                    tmpObj.data = data;
                    tmpObj.prodotti = prodotti;
                    tmpObj.qta = qta;
                    tmpObj.costoUni = costoUni;
                    tmpObj.margine = margine;
                    obj.push(tmpObj); // --> ERRORE
                }
            }
            var json = JSON.stringify(obj);
            console.log(json);
        }
    ottengo un errore sul push:
    codice:
    TypeError: obj.push is not a function[Ulteriori informazioni]
    come posso fare secondo voi??

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,111
    Non capisco cosa dovrebbe essere questo Object "generico". Mi sembra che tu stia parlando di un Array, perché non usare quello?

  3. #3
    ok, ho modificato il primo Object in Array:
    codice:
    var obj = new Array();
    così sembra funzionare!

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jul 2002
    residenza
    Lyon
    Messaggi
    5,098
    Puoi fare cosi che è forse più bello.

    codice HTML:
    <script>
    var obj = [];
    for(i=0;i<10;i++) {
     var objTmp = {
      prodotti : "prod"+i,
      qta      : i
     }
     obj.push(objTmp);
    }
    var json = JSON.stringify(obj);        
    console.log(json);
    </script>
    codice:
    [{"prodotti":"prod0","qta":0},{"prodotti":"prod1","qta":1},{"prodotti":"prod2","qta":2},{"prodotti":"prod3","qta":3},{"prodotti":"prod4","qta":4},{"prodotti":"prod5","qta":5},{"prodotti":"prod6","qta":6},{"prodotti":"prod7","qta":7},{"prodotti":"prod8","qta":8},{"prodotti":"prod9","qta":9}]
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5

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