Estoy tratando de convertir url. Usando for loop para extraer Acura, Audi. Aquí lo que tengo hasta ahora:
var newSrpParams = 'year=2020-2022&make=Acura&make=Audi&model=A3&model=A5&trim=2.0T%20Premium&trim=2.0T%20S%20line%20Premium&normalBodyStyle=Hatchback&normalBodyStyle=Sedan&odometer=13000-38000&internetPrice=20000-50000'; const newSrpParamsArray = newSrpParams.split("&"); var oldSrpParams; var makes = []; for(var i = 0 ; i < newSrpParamsArray.length; i++){ if(newSrpParamsArray[i].includes('make')) { const make = newSrpParamsArray[i].replace('make=','') makes.push(make); console.log(makes) } };El resultado es
[ 'Acura' ] [ 'Acura', 'Audi' ] Como ves, tiene una matriz más. ¿Hay alguna manera de obtener solo [ 'Acura', 'Audi' ] ?
Eso sucede porque está registrando la matriz dentro del bucle for. Si lo mueves afuera obtendrás
['Acura', 'Audi']El código:
var newSrpParams = 'year=2020-2022&make=Acura&make=Audi&model=A3&model=A5&trim=2.0T%20Premium&trim=2.0T%20S%20line%20Premium&normalBodyStyle=Hatchback&normalBodyStyle=Sedan&odometer=13000-38000&internetPrice=20000-50000'; const newSrpParamsArray = newSrpParams.split("&"); console.log(newSrpParamsArray) var oldSrpParams; var makes = []; for(var i = 0 ; i < newSrpParamsArray.length; i++){ if(newSrpParamsArray[i].includes('make')) { const make = newSrpParamsArray[i].replace('make=','') console.log(make) makes.push(make); } }; console.log(makes) // The changeEstaba consolando los resultados dentro de la declaración if, se ejecutará dos veces. Entonces, como resultado make[] imprima dos veces. Es por eso que obtienes las dos matrices.
var newSrpParams = 'year=2020-2022&make=Acura&make=Audi&model=A3&model=A5&trim=2.0T%20Premium&trim=2.0T%20S%20line%20Premium&normalBodyStyle=Hatchback&normalBodyStyle=Sedan&odometer=13000-38000&internetPrice=20000-50000'; const newSrpParamsArray = newSrpParams.split("&"); var oldSrpParams; var makes = []; for(var i = 0 ; i < newSrpParamsArray.length; i++){ if(newSrpParamsArray[i].includes('make')) { const make = newSrpParamsArray[i].replace('make=','') makes.push(make); } }; console.log(makes) Asegúrese de consolar make[] desde fuera del bucle for a. Eso es solo. No pude ver ninguna otra línea incorrecta en su código.
FYI, hay una solución nativa para obtener valores a partir de una cadena de consulta, verifique URLSearchParams
var newSrpParams = 'year=2020-2022&make=Acura&make=Audi&model=A3&model=A5&trim=2.0T%20Premium&trim=2.0T%20S%20line%20Premium&normalBodyStyle=Hatchback&normalBodyStyle=Sedan&odometer=13000-38000&internetPrice=20000-50000'; const makes = new URLSearchParams(newSrpParams).getAll('make'); console.log(makes);