Tengo un montón de objetos dentro de una matriz y tengo que verificar el estado de cada objeto y devolver un valor único para cada matriz.
(10) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}] 0: {projId: 1, task: 'task 1', status: 'completed'} 1: {projId: 1, task: 'task 2', status: 'completed'} 2: {projId: 1, task: 'task 3', status: 'completed'} 3: {projId: 1, task: 'task 4', status: 'completed'} 4: {projId: 1, task: 'task 5', status: 'completed'} 5: {projId: 1, task: 'task 6', status: 'completed'} 6: {projId: 1, task: 'task 7', status: 'completed'} 7: {projId: 1, task: 'task 8', status: 'completed'} 8: {projId: 1, task: 'task 9', status: 'completed'} 9: {projId: 1, task: 'task 10', status: 'completed'} Necesita verificar el estado, y si se completó para toda la matriz, vuelva a completarse; de lo contrario, competed in progress . El código que probé se proporciona a continuación, pero regresa para cada objeto en la matriz.
{GroupedData[key].map(status => ((status.status === "completed")? "Completed" : "In Progress"))}Y estoy escribiendo esto dentro de la función de devolución de exportación en React.js
El método .map() se usa para cambiar valores en una matriz determinada y devuelve esa nueva matriz modificada. En su caso, su código cambia cada valor en su matriz a completed / in progress según el estado del objeto.
En su caso, creo que usar .some() o .every() será la mejor manera de hacerlo. En el código a continuación, está verificando que cada proyecto tenga un estado completed y, si eso devuelve verdadero, asigna 'completed' al result , si no, asigna 'in progress'
const result = data.every((project) => project.status === 'completed') ? 'completed' : 'in progress';prueba esto:
yourArrayObject.every((itemObject) => itemObject.status === 'completed') ? 'Completed' : 'In Progress';