下列例子使用indexOf()为什么为true,想要得到false怎么改?

想要实现的功能是验证arr[2]中的元素是否都在arr[1]中

function mutation(arr) {

  var newStr1 = arr[0].toLowerCase(),

  newStr2 = arr[1].toLowerCase();

  for(var i=0; i<newStr2.length; i++) {

    if(newStr1.indexOf(newStr2[i]) !== -1) {

      return true;

    }

    return false;

  }

  

}


mutation(["hello", "hey"]);  //true,想要得到false


Smart猫小萌
浏览 502回答 1
1回答

慕工程0101907

// arr[0] 中包含 arr[1] 中的全部字符function mutation(arr) {&nbsp; &nbsp; var newStr1 = arr[0].toLowerCase(),&nbsp; &nbsp; &nbsp; &nbsp; newStr2 = arr[1].toLowerCase();&nbsp; &nbsp; for (var i = 0; i < newStr2.length; i++) {&nbsp; &nbsp; &nbsp; &nbsp; if (!~newStr1.indexOf(newStr2[i])) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return false;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; return true;}// arr[1] 属于 arr[0]function mutation(arr) {&nbsp; &nbsp; var newStr1 = arr[0].toLowerCase(),&nbsp; &nbsp; &nbsp; &nbsp; newStr2 = arr[1].toLowerCase();&nbsp; &nbsp; return !!~newStr1.indexOf(newStr2);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript