He visto muchas otras preguntas como esta, pero ninguna me ayudó en mi caso, no siento que mi pregunta esté duplicada por este motivo. Todas las preguntas relacionadas con este caso intentan adjuntar un nuevo "significado" a la variable de cadena, aunque ya tengo esas variables, solo quiero usar una cadena para poder llegar a esas variables preexistentes.
Tengo pocos divs con ID y pocos diccionarios en JS con los mismos nombres que esos ID. Quiero tomar esos ID, que se devuelven como cadenas, y usarlos como variables para acceder a esos diccionarios.
Intenté usar window[item.id] = idName pero creo que no lo entiendo, ya que no funciona.
Mi código:
<div id="id1" onclick="myfunc(this)"></div> <div id="id2" onclick="myfunc(this)"></div> <div id="id3" onclick="myfunc(this)"></div> /* pre-existing variables I want to be able to use with IDs taken from function*/ id1={"name":"xxxx"} id2={"name":"yyyy"} id3={"name":"zzzz"} function myfunc(item){ idName=item.id//returns string with id name name=idName["name"]//doesn't work, as idName is a string and doesn't behave as a variable name; }Especifique primero el dictionary
Entonces puedes tomar el objeto de id ... 🙃
const dictionary = { id1: {name: 'xxxx'}, id2: {name: 'yyyy'}, id3: {name: 'zzzz'}, }; const myfunc = (item)=>{ const idName = item.id; const aName = dictionary[idName]; console.log(aName.name); }; <div id="id1" onclick="myfunc(this)">one</div> <div id="id2" onclick="myfunc(this)">one but 2</div> <div id="id3" onclick="myfunc(this)">the third</div>