Tengo una matriz y un objeto que tiene una matriz como una de sus claves. Quiero usar Lodash para fusionar la matriz en el objeto para reemplazar su matriz. Aquí está el código...
array1 = [false, true, true]; object1 = { id: 1, label: 'lorem', description: "ipsum", users: [ { id: 1, user: 'morbi', checked: true }, { id: 2, user: 'mauris', checked: true }, { id: 3, user: 'duis', checked: true } ] }Lo que quiero hacer es hacer que los booleanos en array1 reemplacen los booleanos "marcados" en la matriz de usuarios en object1. Quiero usar Lodash para hacer esto, ya que parece que sería mucho más fácil, pero si hay otra forma, estoy abierto a eso.
¿Alguna sugerencia?
Dado que las matrices tienen la misma longitud, puede hacerlo usando Array#forEach (o _.forEach ):
const array1 = [false, true, true], object1 = { id: 1, label: 'lorem', description: "ipsum", users: [ { id: 1, user: 'morbi', checked: true }, { id: 2, user: 'mauris', checked: true }, { id: 3, user: 'duis', checked: true } ] }; object1.users.forEach((user, i) => user.checked = array1[i]); console.log(object1.users);La respuesta de Majed es correcta. Estoy agregando este código aquí en caso de que necesite lidiar con la inmutabilidad y requiera crear un nuevo objeto para desencadenar cambios.
const array1 = [false, true, true], object1 = { id: 1, label: 'lorem', description: "ipsum", users: [ { id: 1, user: 'morbi', checked: true }, { id: 2, user: 'mauris', checked: true }, { id: 3, user: 'duis', checked: true } ] }; function updateAnswer(obj, answers) { return { ...obj, users: obj.users.map((user, index) => { return { ...user, checked: answers[index] } }) } } console.log(updateAnswer(object1, array1));