javascript - 如何在 Apps 脚本中获取特定数组元素的索引
问题描述
使用应用程序脚本我有:
var conversation = [R: test1 , R: test3 , tx , I sent ]
我想获取包含'R:'的元素的索引列表,所以我尝试了
var replies = conversation.map(function(message) {
message.indexOf('R:')!== -1 && return conversation.indexOf(message);
});
但现在我无法保存该函数,并且出现语法错误。我究竟做错了什么?
解决方案
两件事情:
- 你不能只用
map
. - 你有你
return
在错误的地方,这是语法错误的原因。
要一次性完成,最简单的方法是使用forEach
and push
(因为 Apps 脚本不支持for-of
):
var replies = [];
conversation.forEach(function(message, index) {
if (message.indexOf("R:") !== -1) {
replies.push(index);
}
});
map
但是您可以使用and分两次完成filter
:
var replies = conversation
.map(function(message, index) {
return message.indexOf("R:") !== -1 ? index : -1;
})
.filter(function(index) {
return index !== -1;
});
推荐阅读
- domain-driven-design - 存储库添加和创建方法
- php - 从类中获取变量以检查权限设置的问题
- hibernate - 删除具有多对多关系的实体时的外键约束
- python - valueError: int() 的无效文字,基数为 10: '' while migrate
- automatic-ref-counting - ios 计算属性会增加任何对象的弧数吗?
- sql - Postgres ON CONFLICT 设置列引用不明确
- python - 如何让 Python selenium chromedriver 加载网页中的所有元素?
- selenium - 无法在新选项卡中打开新选项卡替换第一个选项卡,而不是在 Firefox 中打开新选项卡
- java - 为什么编译器会给我一个无法访问的语句?
- java - 时间轴上具有重复值的 Graphview - 如何将 X 轴的分辨率设置为秒?