javascript - 我如何返回结果而不是两者
问题描述
我有这段代码应该在附加到工作表之前处理一个条件。
我只想附加一个值,即如果数据有两个匹配项,则只有一个应该附加到工作表中,另一个被忽略,循环继续到下一项。
如果它们符合条件,这是附加的代码。我用了|| 操作员。
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 真的很生锈,所以我相信你可以找到更优雅的解决方案。因此,这将根据谁是第一个获得的值,将所有“项目负责人”或“高级项目负责人”添加到 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);
}
推荐阅读
- powerbi - Power Query 中的分页 REST API 结果
- asp.net-core - 如何在 asp.net 核心应用程序中管理 Azure AD openId 身份验证中的会话
- python - 运行(启动)带有烧瓶后端的颤振应用程序
- python - 多种语言的名称实体识别 (NER)
- sql-server - 从存储过程返回拒绝表
- javascript - 如何解决 prestashop 代码 js 的问题
- javascript - 将数字添加到数组中以完成一组数字
- python - 名称插入的while循环
- javascript - 在反应 js(功能组件)中单击它时保持活动按钮
- java - Solr 返回多个(不正确的)值而不是一个正确的值