Quiero convertir mi Array de esto:
[ '0.500000', '0.333333', '0.166667' ]a esto :
[ 0.500000, 0.333333, 0.166667 ] Probé + , Number , parseInt , parseFloat pero ninguno de ellos funciona.
Como se indica en los comentarios, no puede retener el cero al final a menos que siga siendo una cadena, si convierte los valores de la matriz en números, perderá todos los ceros finales. Si necesita realizar cálculos, entonces debe analizar las cadenas en números al realizar el cálculo
pero hay una solución: si todos los números tienen los mismos lugares decimales, puede usar Math.pow() para multiplicarlos por esa potencia y obtener los números reales.
Esto convertirá su matriz de cadenas en una matriz numérica pero con los números multiplicados por 1 * (10 * el número de lugares decimales).
Luego puede usar los valores para realizar cálculos o lo que necesite; solo recuerde dividir por ese 100000 para usarlos. Tenga en cuenta que toFixed() convertirá el número en una cadena y proporcionará los ceros finales según la cantidad de lugares decimales que necesite.
Dicho esto, esta es una solución alternativa, simplemente los convertiría en números, realizaría mi cálculo y luego rellenaría los ceros finales con toFixed (decimalPlaces). Lo simple siempre es lo mejor.
const arr = [ '0.500000', '0.333333', '0.166667' ]; const decimalPlaces = 6; const numArr = arr.map(x => x * (1 * Math.pow(10, decimalPlaces))); console.log(numArr); // gives [500000, 333333, 166667] const stringArr = numArr.map(y => (y / (1 * Math.pow(10, decimalPlaces))).toFixed(decimalPlaces)) console.log(stringArr); // gives ["0.500000","0.333333","0.166667"]