【问题标题】:If statement to check if a certain value is in array or a range of valuesif语句检查某个值是否在数组或值范围内
【发布时间】:2015-09-14 17:00:40
【问题描述】:

您好,我在处理 Google 电子表格中的数组时遇到了困难,所以我有以下代码:

var statusCell = rows.getCell(i, statusColumn);
var ownerCell = rows.getCell(i, ownerColumn);

var owners = new Array ("Mark","Chris","Will","Amy");  

if(ownerCell.getValue() === "One of the values in the array(owners)") 
{statusCell.setValue('Claimed')};

我的所有单元格都已指定等等,我没有问题,在特定位置获取单元格和/或设置它们。但是我在这里的问题是,理想情况下,我会在带有名称的不同工作表中拥有某种范围,但现在它们可以列在数组中,如脚本中所示。

然后我想做一个 if 语句,并检查“ownerCell”是否是数组中列出的值之一。所以前。如果“ownerCell”=“Chris”,那么 if 语句将继续,因为它是数组中列出的名称之一,然后将“statusCell”设置为“Claimed”。如脚本所示。

也许你可以直接做一些事情,这样你就不必比较了,我不知道。一些建议真的会帮助我。非常感谢:)

【问题讨论】:

  • 最好写var owners = ["Mark","Chris","Will","Amy"];
  • 但据我在这里看到:w3schools.com/jsref/jsref_indexof.asp indexOf 只返回索引?所以对于“克里斯”,这将是“1”。我需要检查值是否存在?还是我误会了什么。
  • @WilliamLarsenBang indexOf 如果未找到该值,则返回 -1。所以只要检查结果是否不是-1

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


【解决方案1】:

使用indexOf 测试是否在数组中找到该值。未找到值时返回-1,如果找到则返回索引。

if (owners.indexOf(ownerCell.getValue()) != -1) {
  statusCell.setValue('Claimed');
}

【讨论】:

    猜你喜欢
    • 2013-01-04
    • 2013-10-02
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多