调用布尔值与不等于-1

问题描述

我正在研究一个函数,该函数从相应的前缀(例如www,.com等)中获取域名,并且在将别名称为true和将别名称为not之间有什么区别有点困惑等于-1。

从技术角度看,有人可以帮助我理解为什么不等于-1的方法与仅将别名称为true相对吗? (我可能正在追问这个问题,所以请更正我的语言用法

我最初是从这个开始的,但是没有用。

function getDomain(url) {

  //create result
  let result = '';

  let searchWWW = 'www.';
  let searchHTTP = 'http://';
  let searchHTTPS = 'https://';

  let searchDOT = '.';
  let searchCOM = '.com';
  let searchCO = '.co';
  let searchRU = '.r';

  let indexOfStart = url.indexOf(searchWWW);
  let indexOfStartHTTP = url.indexOf(searchHTTP);
  let indexOfStartHTTPS = url.indexOf(searchHTTPS);
  let indexOfEnd = url.indexOf(searchCOM);
  let indexOfEndDot = url.indexOf(searchDOT);


  // if www 
  if (indexOfStart) {
    //slice from www to dot
    result += url.slice(indexOfStart + 4,url.indexOf(searchDOT,(indexOfEndDot + 1)));
    //if no www and no https
  } else if (!indexOfStartHTTPS) {
    //slice from https to dot
    result += url.slice(indexOfStartHTTPS + 8,indexOfEndDot);
  } else {
    result += url.slice(indexOfStartHTTP + 7,indexOfEndDot);
  }
  //return result
  return result;
}

另一方面,它确实起作用。

  //create result
  let result = '';

  let searchWWW = 'www.';
  let searchHTTP = 'http://';
  let searchHTTPS = 'https://';

  let searchDOT = '.';
  let searchCOM = '.com';
  let searchCO = '.co';
  let searchRU = '.r';

  let indexOfStart = url.indexOf(searchWWW);
  let indexOfStartHTTP = url.indexOf(searchHTTP);
  let indexOfStartHTTPS = url.indexOf(searchHTTPS);
  let indexOfEnd = url.indexOf(searchCOM);
  let indexOfEndDot = url.indexOf(searchDOT);


  // if www 
  if (indexOfStart !== -1) {
    //slice from www to dot
    result += url.slice(indexOfStart + 4,(indexOfEndDot + 1)));
    //if no www and no https
  } else if (!indexOfStartHTTPS) {
    //slice from http/https to dot
    result += url.slice(indexOfStartHTTPS + 8,indexOfEndDot);
  }
  //return result
  return result;
}

感谢您的帮助,期待得到更好的理解。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)