首页 > 解决方案 > 如果所有这些都以角度传递,数组任务如何

问题描述

tasks: [
{failed: true, remarks: "",task: {'name': 'task1'}},
{failed: true, remarks: "",task: {'name': 'task2'}},
]

如果全部失败,如何检查所有任务?

例如,如果所有任务都是failed: true那么它应该是FAILED

如果所有这些都failed: false应该是PASSED

但是当数据是这样的时候:

   tasks: [
    {failed: failed, remarks: "",task: {'name': 'task1'}},
    {failed: true, remarks: "",task: {'name': 'task2'}},,
    {failed: true, remarks: "",task: {'name': 'task3'}}
    ]

然后它会自动FAILED

标签: javascripttypescript

解决方案


你问的重要条件是,

如果他们都失败了:假那么它应该是通过

你需要处理那个案子,其他的案子都是FAILED

您可以使用every迭代器,

const status = tasks.every(task => task.failed === false) ? 'PASSED' : 'FAILED';

let tasks = [{
    failed: true,
    remarks: "",
    task: {
      'name': 'task1'
    }
  },
  {
    failed: true,
    remarks: "",
    task: {
      'name': 'task2'
    }
  },
];

console.log(tasks.every(task => task.failed)); // output: true

let tasksWithFailed = [{
    failed: false,
    remarks: "",
    task: {
      'name': 'task1'
    }
  },
  {
    failed: true,
    remarks: "",
    task: {
      'name': 'task2'
    }
  },
];

console.log(tasksWithFailed.every(task => task.failed)); // output: false


推荐阅读