tengo esta funcion
getVal(item){ var data = []; data.push(item); console.log(data); }el valor de la variable item es:
4.9000 6.7000Quiero insertar en una matriz, pero el resultado en mi consola es este:
4.9000 6.7000 Quiero que la salida sea esta: [4.9000, 6.7000 ]
¿Tengo que fusionarme primero? ¿O tal vez mi técnica de empuje es incorrecta?
Eliminar datos del ámbito getVal. aquí haces una nueva matriz para cada ejecución
var data = []; getVal(item){ data.push(item); console.log(data); }Su lógica con la función de empuje es correcta. Pero el problema es que cada vez que se ejecuta la función, borra todo el valor anterior.
Una solución alternativa es declararlo afuera o puede ejecutar un bucle for:
let data = []; function getVal(item){ data.push(item); } getVal(1) getVal(2) console.log(data); Ejecute un bucle for :
let data = []; function getVal(item){ let data = [] for(let i in item){ data.push(i); } console.log( data) } getVal([1,2,3])Tiene que mover la inicialización de data fuera del cuerpo de la función. Puede evitar la variable global usando un cierre y un IIFE
const getVal = (() => { const data = []; return (item) => { data.push(item); console.log(data); } })();Ejemplo:
const getVal = (() => { const data = []; return (item) => { data.push(item); console.log(data); } })(); getVal(1); getVal(2);