Quiero reemplazar ":player:" de mi cadena con un nombre de jugador de localStorage. Y si hay varios ":player:" en la cadena, quiero reemplazar ":player:" con un nombre diferente cada vez que aparece en la cadena, por ejemplo.
Digamos que tengo una cadena que se parece a esto:
str = ":player: drink 5 sips if :player: has 5 fingers"Entonces quiero que la salida pueda ser.
str = "Alex drink 5 sips if Harry has 5 fingers" Mis datos de almacenamiento local se ven así: namesArray = [["Alex",0],["Harry",1]]
He probado diferentes variantes de str.replace() pero no funciona como yo quiero...
¿Existe algo así?
forEach(str.includes(":player:") => { str.replace(":player:", localStorageName[randomNumber].name); });Utilice el método replaceAll() con una función como reemplazo. Luego puede recuperar de localStorage e incrementar el índice cada vez que se llama.
localStorage.setItem('name', JSON.stringify(['Alex', 'Harry'])); let str = ":player: drink 5 sips if :player: has 5 fingers"; let index = 0; str = str.replaceAll(':player:', () => JSON.parse(localStorage.getItem('name'))[index++]); console.log(str);