首页 > 解决方案 > 编写带有 3 个条件的 if/else 语句,其中混入了 Promise

问题描述

所以我有这个有两个条件的条件语句,其中

let modItemList = this.props.items

    if (this.state.searchItemName) {   // condition1
        modItemList = (
            this.props.items.filter(
                (item) => item.name.toLowerCase().indexOf(lcName) !== -1    // For name
            )
        );
    } else if (this.state.searchItemAddress) {    //condition2
        modItemList = (
            this.props.items.filter(
                (item) => item.fullAddress.some(e => e.toLowerCase().indexOf(lcAddress) !== -1)      // For Address
            )
        );
    } 

这是解释起来有点棘手的地方。

现在我想添加第三个条件,它仅在同时满足条件 1 和条件 2 时才会发生,并且结果是从条件 1 和条件 2 执行代码。

我该如何表达呢?

标签: javascriptif-statementreact-nativees6-promise

解决方案


我认为您只想使用两个单独的if条件,而不是if/ else if

let modItemList = this.props.items;

if (this.state.searchItemName) {   // condition1
    modItemList = modItemList.filter(item =>
        item.name.toLowerCase().indexOf(lcName) !== -1    // For name
    );
}

if (this.state.searchItemAddress) {    //condition2
    modItemList = modItemList.filter(item =>
        item.fullAddress.some(e => e.toLowerCase().indexOf(lcAddress) !== -1)      // For Address
    );
}

这里没有什么是异步的,也没有涉及到 Promise。如果是这样,我建议只await在相应的位置放置一个。


推荐阅读