Estoy recibiendo este error.
Estoy tratando de filtrar por hora del día y recibo las entradas de dos campos de hora HTML.
export function timeBetweenFilterFn(rows, id, filterValues) { const startVals = filterValues[0] ? filterValues[0].split(':') : undefined; const endVals = filterValues[1] ? filterValues[1].split(':') : undefined; const [startHour, startMinutes] = startVals ? startVals.map( (val) => { return parseInt(val); }) : undefined; const [endHour, endMinutes] = endVals ? endVals.map( (val) => { return parseInt(val); }) : undefined; if (startVals || endVals) { return rows.filter( (row) => { const [cellHour, cellMinutes] = row.values[id].split(':').map( (val) => { return parseInt(val); }) if (cellHour === startHour){ return cellMinutes >= startMinutes; } else if(cellHour === endHour){ return cellMinutes <= endMinutes; } else{ return cellHour >= startHour && cellHour <= endHour; } }) } return rows;}
cuando no se proporciona el campo de inicio o el campo final, obtengo el error de tipo no detectado cuando intento asignar la matriz a los nuevos valores a pesar de la verificación ternaria.
Si usa undefined como valor alternativo, obtendrá un error porque está tratando de obtener las variables [startHour, startMinutes] y [endHour, endMinutes] de undefined , que no es iterable .
No puede intentar obtener variables de undefined .
Como puede ver en este ejemplo realizado en la consola del navegador, obtengo el mismo error, porque undefined no es iterable.
En lugar de undefined , intente usar [] como valor predeterminado para evitar errores.
En este caso, las variables a b no estarán undefined .