【问题标题】:How do I return result and not both我如何返回结果而不是两者
【发布时间】:2020-07-22 15:03:25
【问题描述】:

我有这段代码应该在附加到工作表之前处理条件。

我只想附加一个值,即如果数据有两个匹配项,则只应将一个附加到工作表,另一个忽略,循环继续到下一项。

如果两者都符合条件,这是附加的代码。我用了||运算符。

    if (contents.length > 0) {
        var dstSheet = SpreadsheetApp.getActive().getSheetByName('Projects');
        var values = contents.map(e => ([e.email, e.role]));
        var new_values = values.filter(item => {
                                       
            if (item[1] === 'Project Leader' || item[1] === 'Senior Project Leader') {
                return true
            }

        })
       dstSheet.getRange(3, 8, new_values.length, new_values[0].length).setValues(new_values); 
    }
}

这是我处理过的一个,但它仍然传递了两个值。本质上,我希望追加项目负责人或高级项目负责人,而不是两者兼而有之。

    if (contents.length > 0) {
        var dstSheet = SpreadsheetApp.getActive().getSheetByName('Projects');
        var values = contents.map(e => ([e.email, e.role]));
        var new_values = values.filter(item => {
                                       
            if ((item[1] === 'Project Leader' && item[1] != 'Senior Project Leader') || (item[1] === 'Senior Project Leader'&& item[1] != 'Project Leader')) {
                return true
            }

        })
       dstSheet.getRange(3, 8, new_values.length, new_values[0].length).setValues(new_values); 
    }
}

【问题讨论】:

    标签: javascript arrays if-statement google-apps-script google-sheets


    【解决方案1】:

    我的 Javascript 真的很生疏,所以我相信您可以找到更优雅的解决方案。因此,这会将值中的所有“项目负责人”或“高级项目负责人”添加到 new_values,具体取决于谁是第一个获得的。

        if (contents.length > 0) {
        var dstSheet = SpreadsheetApp.getActive().getSheetByName('Projects');
        var values = contents.map(e => ([e.email, e.role]));
        var role = undefined;
        var new_values = values.filter(item => {
                                       
            if ((undefined === role && (item[1] === 'Project Leader' || item[1] === 'Senior Project Leader')) || (role === item[1])) {
                role = item[1];
                return true
            }
    
        })
       dstSheet.getRange(3, 8, new_values.length, new_values[0].length).setValues(new_values); 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-24
      • 2019-05-29
      • 1970-01-01
      • 2021-11-16
      • 2022-12-13
      • 2017-05-03
      • 1970-01-01
      相关资源
      最近更新 更多