简体   繁体   中英

Need to check array of object in React.js

I have a bunch of objects inside an array and I have to check status of each object and return a single value for each array.

(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'}

Need to check the status, and if it is completed for the whole array then return competed else return in progress . The code I tried is given below, but that returns for each object in array.

{GroupedData[key].map(status => ((status.status === "completed")? "Completed" : "In Progress"))} 

And I am writing this inside the return of export function in React.js

.map() method is used to change values in a given array and returns that new modified array. In your case, your code changes each value in your array to completed / in progress depending on the status of the object.

In your case, I think that using .some() or .every() will be the best way to go about this. In the code below you are checking that every project has status completed and if that returns true it assigns 'completed' to result , if not it assigns 'in progress'

const result = data.every((project) => project.status === 'completed') ? 'completed' : 'in progress';

try this:

yourArrayObject.every((itemObject) => itemObject.status === 'completed') ? 'Completed' : 'In Progress';

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM