Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

195
Visualizações
Establezca el valor en el objeto en la clave dinámica, posiblemente más allá del primer alcance dado

Tengo 2 cadenas proporcionadas por el usuario que actúan como una clave y un valor. Digamos, por ejemplo, "foo" y "Hello World!" . ¡Tengo un objeto que quiero modificar y configuro obj.foo en Hello World! .

El problema es que la clave puede conducir a un objeto anidado indefinidamente. Por ejemplo, debería poder usar la clave foo.bar[baz].qux o cualquier secuencia de sintaxis JS extraña como esa para establecer un valor dentro de un objeto anidado, o declarar uno si es necesario.

Además, tendré que acceder a estos valores con otra cadena proporcionada por el usuario que podría tener un formato diferente (por ejemplo, foo[bar][baz][qux] en su lugar). ¿Hay alguna manera de hacer todo esto sin usar eval() ?

Antes de que alguien lo marque, esta pregunta no es un duplicado de la estructura de cambios de un objeto javascript porque

  1. Esa pregunta no aborda la última parte de esta,
  2. Tiene 7 años, y la interacción con los objetos se ha vuelto mucho más fácil con las actualizaciones (¿quizás mi pregunta sería más fácil de responder con las versiones recientes?) y
  3. Tampoco aborda el uso de [] (no es un problema tan grande, hasta que haya personas que usen ambos tipos en una expresión larga)

 const key = "foo.bar"; const key2 = "foo[bar].baz"; const val = "Hello World!"; let obj = {} obj[key] = val; /* Doesn't work. Object is: * {"foo.bar": "Hello World!"} * but intended output is * {"foo": {"bar": "Hello World!"}} */ obj[key2] = val; // Output: {"foo[bar].baz": "Hello World!"} // Intended: {"foo": {"bar": {"baz": "Hello World!"}}} console.log(obj);

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda