JS switch语句构造

时间:2019-07-22 17:45:18

标签: javascript google-apps-script

我正在使用应用程序脚本/ ES5。我有:

function returnText(message) {
  switch(message.indexOf(mykey)!== -1) {
  case true:
    var mykey = 'ziptest'  
    break;
  case true:
    var mykey = 'setnum' 
    break;
  default:
      console.log('default');
  }
}

function returnText1() {
  returnText('ziptest 19886991201')
}

returnText1();

它默认为默认选项。如何解决此问题,以便它在以下位置选择选项:

  var mykey = 'ziptest' 

3 个答案:

答案 0 :(得分:1)

您误解了switch语句的工作方式。 JavaScript函数中的代码从头到尾是逐步的。达到该代码点时,将一次评估switch ()中的条件。

如果您想在message中检查两个不同的字符串,尽管您可以使用switch,但这将是不合适且令人困惑的。而是使用if / else if / else

function returnText(message) {
    if (message.indexOf("ziptest")!== -1) {
        return "ziptest";
    } else if (message.indexOf("setnum") !== -1) {
        return "setnum";
    } else {
        return "default";
    }
}

(由于每个分支return的存在,实际上您实际上不需要else,但是...)


在评论中您说过:

  

现在我只有3个选项,但以后可能还要再添加5-6个

在这种情况下,请使用循环:

const strings = ["ziptest", "setnum", /*...*/];
function returnText(message) {
    return strings.find(str => message.indexOf(str) !== -1) || "default";
}

find返回第一个条目,该条目的回调返回真值(并停止循环),或者undefined,如果它用完了条目而没有回调返回真值。因此,使用上述方法,我们检查每个str返回的true字符串是否存在于message中。如果find返回undefined,则|| "default"将插入并提供默认字符串。


旁注:我看到您已经对此进行了标记,因此您可能会陷入.indexOf(str) !== -1的困境。但是我听说他们正在对其进行更新,所以您可能现在有.includes(str)

答案 1 :(得分:1)

如果您真的想使用switch,则可以执行以下操作。

function returnText(message) {
  switch (true) {
    case message.indexOf('ziptest') > -1:
      console.log('ziptest');
      break;
    case message.indexOf('setnum') > -1:
      console.log('setnum');
      break;
    default:
      console.log('default');
  }
}

function returnText1() {
  returnText('ziptest 19886991201')
}

returnText1();

答案 2 :(得分:1)

如果键很多,则应该使用数组。

  Controller ::: 

   public function addmember()
      {

    if (empty($_FILES['user_image']['name']))
    {
        $this->form_validation->set_rules('user_image', 'User Image', 'required');
    }
    if (empty($_FILES['user_gallery']['name']))
    {
        $this->form_validation->set_rules('user_gallery[]', 'User Gallery', 'required');
    }

    if($this->form_validation->run() == FALSE)
    {

        $this->load->view('common_page/header');
        $this->load->view('common_page/sidebar');
        $this->load->view('form');
        $this->load->view('common_page/footer');
    }
    else
    {

        $config['upload_path']   = './uploads/';
        $config['allowed_types'] = 'gif|jpg|png';
        $this->load->library('upload', $config);

        if($this->upload->do_upload('user_image') && !empty($_FILES['user_gallery']['name']))
        {
            $uploadData = $this->upload->data();
            $uploadedFile = $uploadData['file_name'];

            $dataInfo = [];
            $files = $_FILES;
            $cpt = count($_FILES['user_gallery']['name']);

            for($i=0; $i<$cpt; $i++)
            {           
                $_FILES['user_gallery']['name']  = $files['user_gallery']['name'][$i];
                $_FILES['user_gallery']['type']  = $files['user_gallery']['type'][$i];
                $_FILES['user_gallery']['tmp_name'] = $files['user_gallery']['tmp_name'][$i];
                $_FILES['user_gallery']['error'] = $files['user_gallery']['error'][$i];
                $_FILES['user_gallery']['size']  = $files['user_gallery']['size'][$i];    

                $this->upload->initialize($config);
                $this->upload->do_upload('user_gallery');
                $dataInfo[] = $this->upload->data();
            }

            $all_imgs = '';

            if ( count($dataInfo) > 0) {

                foreach ($dataInfo as $info) {

                    $all_imgs .= $info['file_name'];
                    $all_imgs .= ',';
                }
            }

            $data = [
                'user_image' => $uploadedFile,
                'user_gallery' => $all_imgs
            ];

            $this->Admin_model->insertData($data,'member');
            $this->session->set_flashdata('success', 'Member Register Successfully !!!');
            redirect('all/form');
        }
        else
        {

        }
    }
}


  VIEW :::
     <form role="form" id="member_form" action="<?php echo 
          base_url('all/addmember');?>" method="post" enctype="multipart/form-data">
        <div class="box-body">
       <div class="form-group">
            <label for="exampleInputFile">User Image</label>
            <input type="file" id="file" name="user_image">
            <?php echo form_error('user_image', '<div class="error">', '</div>'); ?>

          </div>

          <div class="form-group">
            <label for="exampleInputFile">User Gallery Image</label>
            <input type="file" id="gallery" name="user_gallery[]" multiple="">
            <?php echo form_error('user_gallery', '<div class="error">', '</div>'); ?>
          </div>
        <div class="box-footer">
          <button type="submit" class="btn btn-primary">Submit</button>
        </div>
         </div>
       </form>