Io l'avrei fatto cosi'
Nei commenti le mie considerazioni
Codice PHP:
var ilConto = new Conto(2000);
// Un po' di dati per fare dei test
ilConto.aggiungi(new Date(2008, 1, 12), 'causale1', 100);
ilConto.aggiungi(new Date(2008, 1, 13), 'causale2', 200);
ilConto.aggiungi(new Date(2008, 1, 18), 'causale3', -100);
ilConto.aggiungi(new Date(2008, 1, 25), 'causale4', -120);
ilConto.aggiungi(new Date(2008, 2, 2), 'causale5', 300);
ilConto.aggiungi(new Date(2008, 2, 4), 'causale6', 400);
ilConto.aggiungi(new Date(2008, 2, 5), 'causale7', 123);
// Un paio di finestre con la stampa dei dati
alert(ilConto.stampaVersamenti());
alert(ilConto.stampaPrelievi());
alert("Il saldo attuale e': " + ilConto.saldo);
function Conto(s){
this.saldo = s;
this.prelievi=0; //Prelievi e Versamenti contengono il numero di prelievi o versamenti. Li inizializzo a 0
this.versamenti=0;
this.stampaVersamenti=""; //Inizializzo le funzioni... non e' necessario ma se il tuo prof usa cosi'...
this.stampaPrelievi=""; //Inizializzo le funzioni... non e' necessario ma se il tuo prof usa cosi'...
// Questi array vanno inizializzati una volta sola e non ogni volta che aggiungi un'operazione
// Altrimenti li svuoti ogni volta.
// Quindi tiro fuori queste istruzioni dalla funzione aggiungi()
this.data = new Array();
this.importo= new Array();
this.causale = new Array();
this.aggiungi = function(d,c,i){
this.data.push(d); //La funzione push server proprio ad aggiungere un elemento in fondo all'array
this.causale.push(c);
this.importo.push(i);
this.saldo += i; // Aggiorno il saldo aggiungendogli l'importo
// Non ho capito questo ciclo for e l'ho tolto
//var m = 0
//for (var i= 0; i < this.importo.length; i++)
//if (this.importo[i] > 0)
// return m += this.importo[i]
//else
// return m -= this.importo[i];
// se l'importo e' positivo aumento i versamenti di uno
// altrimenti aumento i prelievi
if(i>=0)
this.versamenti++;
else
this.prelievi++;
}
this.stampaPrelievi= function (){
var m = "";
for(var i = 0; i< this.importo.length; i++) {
if(this.importo[i] < 0)
m+= this.importo[i] + " " + this.data[i] + " " + this.causale[i] +"\n"; // Aggiunti un po' di spazi e il carattere di ritorno a capo
}
return m
}
this.stampaVersamenti = function (){
var v="";
for(var i = 0; i<this.importo.length; i++) {
if( this.importo[i] > 0)
v+= this.importo[i] + " " + this.data[i] + " " + this.causale[i] +"\n";
}
return v;
}
}