0

请帮助G.A.S.新手出去!我已经制作了一个电子表格,我正在从电子表格的一个单元触发此脚本,并分析另一列。我一直在简单地将我希望它放入分析栏的关键字返回,但我的一些数据将包含多个关键字。在GAS中连接返回值,输出到电子表格单元格?

在我看来,最简单的做法是简单地连接 - 将相关的新关键字添加到电子表格当前单元格中。但是,我没有找到关于连接返回值的很多信息。我是否需要创建一个数组或其他方法来实现这一点,然后让它在整个脚本运行后以字符串形式返回数组?

这里是我的工作代码:

function proteins(inCell){ 
     if(inCell.toString().match('chicken') == 'chicken') { 
     return 'chicken';} 
    else if(inCell.toString().match('mortadella') == 'mortadella') { 
    return 'pork';} 
    else if(inCell.toString().match('beef') == 'beef') { 
     return 'beef';} 
     else if(inCell.toString().match('pork') == 'pork') { 
     return 'pork';} 
     else if(inCell.toString().match('ham') == 'ham') { 
     return 'pork';} 
    else {return 'something else';} 
} 

谢谢您的时间!

回答

0

问题是,当你使用return 'pork'或其他什么return,你的函数实际返回,即退出函数,从不检查其他条件。 解决方案很简单:使用一个单独的变量连接结果并在该函数结束时返回该变量。 事情是这样的:

function proteins(inCell){ 
    var result = '';  
    if(inCell.toString().match('chicken') == 'chicken') { 
    result += 'chicken';} 
    else if(inCell.toString().match('mortadella') == 'mortadella') { 
    result += 'pork';} 
    else if(inCell.toString().match('beef') == 'beef') { 
    result += 'beef';} 
    else if(inCell.toString().match('pork') == 'pork') { 
    result += 'pork';} 
    else if(inCell.toString().match('ham') == 'ham') { 
    result += 'pork';} 
    else {result += 'something else';} 
    return result; 
} 

这将返回所有的有效字符串放在一起,你可能要添加分隔符的可读性然后只需添加一个逗号或添加的每个项目后,一个连字符...

如果你真的想要它是完美的,请在使用简单的JavaScript字符串函数返回结果之前删除最后一个逗号。请参阅文档here for example

+0

我知道必须有一个简单的答案。谢谢!! – Dani

相关问题