Encontré un bloque de código en un proyecto y me resulta difícil de entender:
let isSelected = false; const results = items.filter(Boolean).map(item => { isSelected = !isSelected && id === item.id; return { id: item.id, name: item.name }; }); ¿Cuál es la línea isSelected = !isSelected && id === item.id; antes de la return está tratando de hacer?
Gracias.
Es una forma confusa de, al mapear a través de la matriz, también establecer isSelected en verdadero si alguno de los elementos de la matriz coincide con la ID.
Un enfoque equivalente sería
const truthyItems = items.filter(Boolean); const results = truthyItems.map(item => ({ id: item.id, name: item.name })); const isSelected = truthyItems.some(item => item.id === id); Los efectos secundarios dentro de una devolución de llamada .map suelen ser un olor a código.