> Faqs > Tengo un problema con el metodo slice()

Tengo un problema con el metodo slice()

Buenas tardes, resultado que tengo el siguiente codigo:

//Mediana del top 10% más pobre:
const spliceCountPobres= parseInt((listSalarioOrdenado.length * 10) /100);
const salariosColporcentaje10Pobres= listSalarioOrdenado.slice(0, spliceCountPobres);
const medianaTopColPobres= calcularMedianaSalarios(salariosColporcentaje10Pobres);

Y cuento un array de 20 elementos cada elemento con un nombre y un salario. Pasa que al momento de recorrer con slice() mi array listadoSalarioOrdenado este solo me toma el valor en la posición 0 de mi array, ósea no me está tomando la variable spliceCountPobres que es igual a 2. Y lo que quiero es que me tome los 2 primeros elementos de mi array listadoSalarioOrdenado. Lo que intento hacer es slice(0, 2). Pero no me esta recorriendo los dos elementos como deberia. Y es raro, porque cuando coloco listadoSalarioOrdenado.slice(0, 2) hay si me recorre y toma los dos valores que quiero de mi array original y me le saca la media, pero cuando coloco listadoSalarioOrdenado.slice(0, spliceCountPobres) no me da, solo me arroja el valor de la posicion 0.

No se si alguno de ustedes me podrían ayudar compañeros. Quiero que me agarre la variable spliceCountPobres para hacerlo más generico.

Respuestas

Hola,

El fragmento de código que nos has puesto en tu pregunta tiene buena pinta.

Yo lo he probado y el slice() lo tienes bien. Debes tener algún problema con código que no estás mostrando en el enunciado de tu pregunta, o una interpretación incorrecta de lo que debería devolver.

He modificado un poco tu código para poder ejecutarlo, creando un array con valores ordenados que luego pueda usar para ejercitar el código.

var listSalarioOrdenado = [10, 20, 50, 60, 100, 120, 130, 180, 190, 198, 200, 220, 330, 380, 390, 598, 620, 630, 680, 690, 698, 700, 720, 730, 780, 790, 798]; 
//Mediana del top 10% más pobre:
const spliceCountPobres = parseInt((listSalarioOrdenado.length * 10) /100);
alert(spliceCountPobres);
const salariosColporcentaje10Pobres= listSalarioOrdenado.slice(0, spliceCountPobres);
alert(salariosColporcentaje10Pobres.length);

Con la ejecución de este código obtienes "2" elementos en el array resultado salariosColporcentaje10Pobres por lo que entiendo que tu problema está en otro lugar que no nos has mostrado. El método slice() de Javascript está trabajando tal como se esperaba.

Alberto
526 13 37 15