Estoy mapeando datos obtenidos como este en React. Estoy imprimiendo el nombre, la columna y la fila en el párrafo, por lo que cada vez que es nulo, imprime solo nulo nulo nulo, pero si warehouse_name es nulo, necesito transferir todos los valores a alguna Cadena como "Indefinido" en lugar de estos árboles nulos.
¿Puede haber una mejor solución con el uso de algún método de cadena para el párrafo en lugar de esto?
const transformedData = data.order_items.map((invoiceData) => { return { alternative_warehouse_position: invoiceData.alternative_warehouse_position, warehouse_column: invoiceData.warehouse_column, warehouse_name: invoiceData.warehouse_name, warehouse_row: invoiceData.warehouse_row, };Podrías usar el operador coalescente nulo ?? .
const FALLBACK_STRING = "(not set)"; return { alternative_warehouse_position: invoiceData.alternative_warehouse_position ?? FALLBACK_STRING, warehouse_column: invoiceData.warehouse_column ?? FALLBACK_STRING, warehouse_name: invoiceData.warehouse_name ?? FALLBACK_STRING, warehouse_row: invoiceData.warehouse_row ?? FALLBACK_STRING, };3 formas de hacerlo:
Utilizando el "?" para comprobar si es nulo. Ejemplo: ${Condition} ? ${is true} : ${is false} .
Usando la nueva sintaxis de verificación de valores nulos. Ejemplo: ${Value} ?? ${the replacement if its null}
Usando el operador OR, que mejora las capacidades hacia atrás. Ejemplo: ${first condition} || ${Second to replace if the first is false}
Nota: nulo cuenta como falso
Si lo entiendo correctamente, desea reemplazar los tres valores con una cadena si billData.warehouse_name es nulo. Puede usar el operador ternario (?:) para eso.
const transformedData = data.order_items.map( invoiceData => !!invoiceData.warehouse_name ? { alternative_warehouse_position: invoiceData.alternative_warehouse_position, warehouse_column: invoiceData.warehouse_column, warehouse_name: invoiceData.warehouse_name, warehouse_row: invoiceData.warehouse_row } : "No data" );