【问题标题】:Using Filter Function to Find Values Equal to False and Setting to True使用过滤函数查找等于 False 的值并设置为 True
【发布时间】:2017-07-12 12:01:43
【问题描述】:

在我的 Angular 应用程序中,我有一个向下钻取到数组的函数,然后使用过滤器函数在“已完成”为“假”的新数组中提取值。

这按预期工作。我们的数据是这样的,数组中总是有一个对象的“已完成”属性设置为“假”,所以我可以将 [0] 设为目标。所以,从那里我需要做的就是将其设置为“true”。但是,无论出于何种原因,如何完成这最后一步都是我无法理解的。

这是我的全部功能,也是迄今为止我尝试过的:

private completeLastWorkflowStatus() {
    let currentService = this.checkDiscipline();
    for (let service of this.client.services) {
        if (service.service === currentService) {
            let targetWorkflow = service.workflow;
            let inCompleteWorkflow = targetWorkflow.filter(workflow => workflow.completed === false);
            console.log(inCompleteWorkflow);
            if (inCompleteWorkflow[0].completed === false) {
                inCompleteWorkflow[0].completed === true;
                console.log(inCompleteWorkflow[0].completed);
            }
        }
    }
}

对于上面列出的最后一个 console.log,我仍然得到“false”作为值。我在这里想念什么?如何将数组中的这个对象的“完成”值设置为“真”?

【问题讨论】:

  • = 用于分配,而不是 ===。 (另外,您不需要 if,因为您已经知道该属性是 false,因为过滤器操作。可能您应该测试 if (inCompleteWorkflow.length > 0)。)
  • 要给某个东西赋值,你使用=,而不是===
  • 啊,当然。现在很明显,我看到了。谢谢。

标签: javascript angular typescript


【解决方案1】:

inCompleteWorkflow[0].completed === true; 不是赋值。做inCompleteWorkflow[0].completed = true;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多