ugrás a tartalomhoz

javascript tömb

HPeti · 2009. Júl. 20. (H), 12.54
Helló! az lenne a kérdésem, hogy egy textareaba másolt 23 szám összegét hogy tudnám kiiratni egy alert-ben? az a gondom, hogy valszeg a tömb elemei string-ként vannak értelmezve, hogy tudnék tömbváltozókat for-al int-be konvertálni? néztem fórumokon, de eddig nem sikerült. Idemásolom a kódot: http://pastebin.com/m800b5ad


előre is köszönöm!
 
1

próbálkozás

HPeti · 2009. Júl. 20. (H), 13.05
Így is próbáltam:

function mut(){

sum=0;
var y = new Array()
for(i=0; i<=x.length; i++){
y[i]=parseInt(x[i]);



}
for (i=0; i<=x.length; i++){

sum = sum + y[i] ;


}
alert(sum);
}
2

Ilyesmi

Poetro · 2009. Júl. 20. (H), 13.22
var text = "1,2,3,4,5,6,7";   // Itt vannak az értékeink vesszővel elválasztva
var values = text.split(','); // Csinálunk belőlük egy tömböt.
var sum = 0;                  // Az összeg kezdetben 0
var i, value;                 // Változók, amiket később majd használunk
for (i = 0; i<values.length; i++) {
  value = parseInt(values[i], 10); // Próbálunk egész számot generálni belőle
  if (value && !isNaN(value)) { 
    sum += value;             // Ha szám, és nem nulla, akkor hozzáadjuk az összeghez.
  }
}
alert(sum);
3

Hmm, sajnos nem jó, hasonló

HPeti · 2009. Júl. 20. (H), 13.49
Hmm, sajnos nem jó, hasonló megoldást próbáltam, de akkor is azt írta ki, mint most, hogy NaN...így próbálkoztam: function mut(){

var myTextField = new Array()

myTextField = document.getElementById('myText'); //itt veszem ki a textarea elemeit tömbváltozóba
x=myTextField.value.split("\n");//itt szeletelem fel a textarea tartalmát


var i, sum=0;

for(i=0; i<=x.length; i++){
value = parseInt(x[i], 10);
sum += value ;
}


alert(sum);
}
4

jó lett

HPeti · 2009. Júl. 20. (H), 13.55
mégiscsak, működik! csak nem értem, hogy miért a 7. sorban leírt feltétel, mármint amit Te írtál?!
5

value && !isNaN(value)a value

Poetro · 2009. Júl. 20. (H), 20.06
value && !isNaN(value)
a value itt azt ellenőrzi, hogy boolean-na alakitva true-t ad-e vissza. Ez ugye üres string, 0, false esetén nem igaz.
Az isNaN ellenőrzi, hogy a value számot tartalmaz-e, mivel a parseInt Number.NaN (Not a Number) értéket adhat vissza amennyiben nem számot kapott.