Básicamente, trato de dividir una cadena de URL que contiene más de una coma, pero el resultado es así:
{ "photoUrl": [ "https://m.media-amazon.com/images/M/MV5BMTU4MTgxOTQ0Nl5BMl5BanBnXkFtZTgwNDI0Mjk1NDM@._V1_UY100_CR19", "0", "100", "100_AL_.jpg", "https://m.media-amazon.com/images/M/MV5BMTczMTk5MjkwOF5BMl5BanBnXkFtZTgwMDI0Mjk1NDM@._V1_UY100_CR12", "0", "100", "100_AL_.jpg", "https://m.media-amazon.com/images/M/MV5BZTFiODA5NWEtM2FhNC00MWEzLTlkYjgtMWMwNzBhYzlkY2U3XkEyXkFqcGdeQXVyMDM2NDM2MQ@@._V1_UX100_CR0", "0", "100", "100_AL_.jpg" ] },Aquí está mi código, ¿hay alguna manera de arreglarlo...?
for (let i = 0; i < data.length; i++) { console.log(data[i].genre[i].genre.split(",")); New_data.push({ photoUrl: data[i].photo[i].photoUrl.split(",") }); New_data.push({ genre: data[i].genre[i].genre.split(",") }); }URL antes de dividir:
'https://m.media-amazon.com/images/M/MV5BMTU4MTgxOTQ0Nl5BMl5BanBnXkFtZTgwNDI0Mjk1NDM@._V1_UY100_CR19,0,100,100_AL_.jpg,https://m.media-amazon.com/images/M/MV5BMTczMTk5MjkwOF5BMl5BanBnXkFtZTgwMDI0Mjk1NDM@._V1_UY100_CR12,0,100,100_AL_.jpg,https://m.media-amazon.com/images/M/MV5BZTFiODA5NWEtM2FhNC00MWEzLTlkYjgtMWMwNzBhYzlkY2U3XkEyXkFqcGdeQXVyMDM2NDM2MQ@@._V1_UX100_CR0,0,100,100_AL_.jpg'Una solución táctica podría ser extender la división por , a ,http y volver a agregar el http necesario más adelante.
const text = 'https://m.media-amazon.com/images/M/MV5BMTU4MTgxOTQ0Nl5BMl5BanBnXkFtZTgwNDI0Mjk1NDM@._V1_UY100_CR19,0,100,100_AL_.jpg,https://m.media-amazon.com/images/M/MV5BMTczMTk5MjkwOF5BMl5BanBnXkFtZTgwMDI0Mjk1NDM@._V1_UY100_CR12,0,100,100_AL_.jpg,https://m.media-amazon.com/images/M/MV5BZTFiODA5NWEtM2FhNC00MWEzLTlkYjgtMWMwNzBhYzlkY2U3XkEyXkFqcGdeQXVyMDM2NDM2MQ@@._V1_UX100_CR0,0,100,100_AL_.jpg'; var result = text.split(",http").map(url => { if(!url.startsWith("http")) { url = "http" + url; } return url; }); console.log(result);Como sabemos que la url comienza con https:// , podemos verificar cada segmento y construir la url en consecuencia:
const text = 'https://m.media-amazon.com/images/M/MV5BMTU4MTgxOTQ0Nl5BMl5BanBnXkFtZTgwNDI0Mjk1NDM@._V1_UY100_CR19,0,100,100_AL_.jpg,https://m.media-amazon.com/images/M/MV5BMTczMTk5MjkwOF5BMl5BanBnXkFtZTgwMDI0Mjk1NDM@._V1_UY100_CR12,0,100,100_AL_.jpg,https://m.media-amazon.com/images/M/MV5BZTFiODA5NWEtM2FhNC00MWEzLTlkYjgtMWMwNzBhYzlkY2U3XkEyXkFqcGdeQXVyMDM2NDM2MQ@@._V1_UX100_CR0,0,100,100_AL_.jpg'; const res = {photoUrl: []}; const array = text.split(","); let url = ""; for(let i = 0; i < array.length; i++) { //if value is does not start with https:// append to current url if (array[i].indexOf("https://")) { url += "," + array[i]; } else { if (url !== "") res.photoUrl.push(url); url = array[i]; } } res.photoUrl.push(url); console.log(res); .as-console-wrapper{top:0;max-height:unset!important;}