【问题标题】:Arrays and if statements. How to check if value is in array? *javascript*数组和 if 语句。如何检查值是否在数组中? *javascript*
【发布时间】:2014-02-20 02:07:44
【问题描述】:

所以我有一个发送电子邮件的程序。用户有一个无法发送到的电子邮件列表。这些在数组中,我需要使用 if 语句来确定用户输入的内容是否在电子邮件数组中。我尝试了不起作用的 in 函数,但我可能只是用错了。我尝试了 for 循环和 if 语句。但这也没有用。这是我用来帮助您了解我正在尝试做什么的代码的快照。

function test2(){
  var safe = [1]
  safe[1] = "lol"
  safe[2] = "yay"

  var entry = "lol"
  Logger.log("entry: " + entry)
  for(i = 0; i < safe.length; i++){
    if(entry == safe[i]){
      Logger.log("positive")
    }else{
      Logger.log("negative")
    }
  }
}

这是我尝试使用 in 函数向您展示的内容,如果我做错了

function test(){
  var safe = [1]
  safe[1] = "lol"
  safe[2] = "yay"

  var entry = "losl"
  Logger.log("entry: " + entry)
  if(entry in safe){
    Logger.log("came positive")
  }else{
    Logger.log("came negative")
  }
  Logger.log(safe)
}

【问题讨论】:

  • 你想用var safe = [1]完成什么?

标签: arrays if-statement google-apps-script


【解决方案1】:

array.indexOf(element) &gt; -1 通常可以解决这些情况!

对此进行扩展:

if (array.indexOf(emailToSendTo) < 0) {
  // send   
}

或者,看看这个很酷的东西:

emailsToSend = emailsToSend.filter(function(x) {
  // basically, this returns "yes" if it's not found in that other array.
  return arrayOfBadEmails.indexOf(x) < 0;
})

它的作用是过滤要发送的电子邮件列表,确保它不是一封错误的电子邮件。可能有一个更优雅的解决方案,但这很简洁。

【讨论】:

  • 非常感谢这个工作,除了你说“//不发送”原来是要发送的部分。但是谢谢我真的很困惑!这些该死的数组:P
  • 哈!不小心把我的 > 弄错了,但这样效果更好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多