首页 > 解决方案 > 如何在 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);

});  

但现在我无法保存该函数,并且出现语法错误。我究竟做错了什么?

标签: javascriptgoogle-apps-script

解决方案


两件事情:

  1. 你不能只用map.
  2. 你有你return在错误的地方,这是语法错误的原因。

要一次性完成,最简单的方法是使用forEachand 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;
    });

推荐阅读