Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

173
Vistas
Cómo cambiar datos en un JSON anidado por javascript lodash

por ejemplo, tengo un archivo JSON como este

 { "employees": [ { "name": "Ram", "email": "ram@gmail.com", "age": 23 }, { "name": "Shyam", "email": "shyam23@gmail.com", "age": 28 }, { "name": "John", "email": "john@gmail.com", "age": 33 }, { "name": "Bob", "email": "bob32@gmail.com", "age": 33 } ] }

Ahora quiero crear una nueva matriz igual a esta, pero con un valor específico modificado, como si la edad fuera 33 y luego cambiar a 1, como

 { "employees": [ { "name": "Ram", "email": "ram@gmail.com", "age": 23 }, { "name": "Shyam", "email": "shyam23@gmail.com", "age": 28 }, { "name": "John", "email": "john@gmail.com", "age": 1 }, { "name": "Bob", "email": "bob32@gmail.com", "age": 1 } ] }

¿Cómo puedo hacer esto con lodash o javascript array? muchas gracias chico

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Para crear una nueva matriz, debe tener cuidado de no modificar los elementos existentes de la matriz. Puede hacer esto de varias maneras, sin embargo, debido a que sus datos tienen varios niveles, el uso de funciones como Array.map() o el operador Spread ( ... ) puede ser problemático. Primero debe copiar los datos. Una forma es usar JSON.stringify() y JSON.parse() para crear la copia, luego modificarla usando un método de manipulación de matrices ( .map() , .reduce() , .forEach() , etc.) para modificar los datos .

 var data = { employees: [ { name: "Ram", email: "ram@gmail.com", age: 23 }, { name: "Shyam", email: "shyam23@gmail.com", age: 28 }, { name: "John", email: "john@gmail.com", age: 33 }, { name: "Bob", email: "bob32@gmail.com", age: 33 } ] } var copy = JSON.parse(JSON.stringify(data)) copy.employees.map( elem => { elem.age = elem.age==33?1:elem.age; return elem } ) console.log(copy)

about 4 years ago · Juan Pablo Isaza Denunciar

0

El mapa es la buena manera de hacerlo, pero si está anidado en algún lugar de un objeto, también puede agregar el operador de propagación:

 const object = { employees: [ { name: "Ram", email: "ram@gmail.com", age: 23 }, { name: "Shyam", email: "shyam23@gmail.com", age: 28 }, { name: "John", email: "john@gmail.com", age: 33 }, { name: "Bob", email: "bob32@gmail.com", age: 33 }, ] } const employees = object.employees.map((employee) => { employee.age = employee.age === 33 ? 1 : employee.age; return employee }) const newObject = { ...object, employees: employees } console.log(newObject)

about 4 years ago · Juan Pablo Isaza Denunciar

0

como @Tibrogargan mencionó, esta respuesta no es buena si necesita hacer una copia profunda porque la función de mapa hace una copia superficial, puede ver más sobre eso y más formas de hacer una copia profunda aquí https://javascript.plainenglish.io/how- para-copiar-profundamente-objetos-y-matrices-en-javascript-7c911359b089#:~:text=4.,objects%20are%20not%20really%20cloned .

puede que no sea bueno para ti. Por favor, comprueba la respuesta de Tibrogargan.

puedes usar el método de mapa de Javascript

 let data = { employees: [ { name: "Ram", email: "ram@gmail.com", age: 23 }, { name: "Shyam", email: "shyam23@gmail.com", age: 28 }, { name: "John", email: "john@gmail.com", age: 33 }, { name: "Bob", email: "bob32@gmail.com", age: 33 }, ], }; let newArray = data.employees.map((emp) => { if (emp.age == 33) emp.age = 1; return emp; }); console.log(newArray);

más sobre la función de mapa https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda