Tengo tres listas, la primera es así
[ true, ['keyToOffice', false], false ]El segundo es así:
[ { reference: 'keyToOffice', a load of other irrelevant stuff }, { reference: 'keyToHouse', a load of other irrelevant stuff } ]El tercero, mi inventario es así:
[ 'keyToOffice' ] Me gustaría saber si hay una forma de actualizar el segundo valor de todas las listas en la primera lista a verdadero si el primer elemento está dentro de la tercera lista. Lo que pasaría es que en ['keyToOffice', false] , lo false se convertiría en verdadero porque está en la lista de inventario. Si 'keyToOffice' no estuviera en el inventario, el false seguiría siendo false .
Si entiendo su problema correctamente, no necesita la segunda lista. Simplemente puede iterar a través de la primera lista, y si el elemento es una matriz, y la cadena que contiene está incluida en la tercera lista, cambie el valor booleano a verdadero.
Lo que hace el mapa es iterar a través de una matriz y devuelve una representación uno a uno de esa matriz (la misma cantidad de elementos), con ciertos elementos cambiados de acuerdo con las reglas dentro de la función.
const firstList = [ true, ['keyToOffice', false], false, true, ['keyToHouse', false], false, true, ['keyToCar', false], false, ] const thirdList = [ 'keyToOffice', 'keyToCar' ] const firstListAmended = firstList.map(el => { if(Array.isArray(el)) { if(thirdList.includes(el[0])) { el[1] = true } } return el }) console.log(firstListAmended)