Suma de Números en JavaScript

Me encontré que en algunos casos cuando quiero sumar un valor numérico a una variable en lugar de realizar dicha operación matemática concatena ambos valores como si fueran un string.

Esto no ocurre si ambos valores son enteros puros. El problema se da por ejemplo si alguno de los valores de la suma están almacenados en un array.

Por ejemplo:


var values = "2 4 6 8";

var splitValues = values.split(" ");

var y = 10;

y += splitValues[2];

alert(y);

Este ejemplo devolverá el valor “106″ en lugar del esperado: 16.

Para solucionar este comportamiento no deseado tenemos que indicarle a JavaScript que interprete dicho valor como número y no como cadena. Para eso podemos utilizar la función parseInt :


var values = "2 4 6 8";

var splitValues = values.split(" ");

var y = 10;

y += parseInt(splitValues[2]);

alert(y);

De esta forma le decimos a JavaScript que interprete splitValues[2] como un entero y obtenemos el resultado esperado: 16.

También podemos utilizar parseFloat si queremos que JS interprete un string como decimal en lugar de entero.

Para mas info: http://www.w3schools.com/jsref/jsref_parseInt.asp

Posted: November 2nd, 2004 | Author: lichi | Filed under: development, javascript | Tags: | No Comments »

Split en Javascript

Split, una de las funciones de manipulación de cadenas que mas usaba en VB6 afortunadamente tiene una implementación muy similar en JavaScript.

Esta función es particularmente útil a la hora de “parsear” valores concatenados en un string.

La forma de utilizar split en Javascript es: miCadena.split( Separador, [Limite])

Veamos un ejemplo del mundo real:


var vResult= "value1|value2|value3";

var vSplitResult = vResult.split("|");

alert("El primer valor es " + vSplitResult[0]);
alert("El segundo valor es " + vSplitResult[1]);

Como vemos, la función “split” genera un array con cada uno de los elementos contenidos

en el string vResult concatenados por “|”.

Veamos otro ejemplo: Esta vez recorriendo el array generado mediante un bucle:


var vResult= "value1 value2 value2 value4 value5 value6";
var vSplitResult = vResult.split(" ");

for(i = 0; i < vSplitResult.length; i++){
document.write("* Item " + i + " = " +
vSplitResult[i] + "<br />");
}

Para mas info pueden consultar la referencia de la función en W3 School.

Posted: September 9th, 2004 | Author: lichi | Filed under: development, javascript | Tags: | 1 Comment »