Javascript 为什么这个.indexOf方法不能在这个数组上工作?

Javascript 为什么这个.indexOf方法不能在这个数组上工作?,javascript,arrays,methods,Javascript,Arrays,Methods,我有以下代码: var newArr = []; function mutation(arr) { //Makes both values lowercase for (var i = 0; i < arr.length; i++) { newArr.push(arr[i].toLowerCase()); } //splits the letters of the second value into separate values. var let

我有以下代码:

var newArr = [];

function mutation(arr) {

  //Makes both values lowercase

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

    newArr.push(arr[i].toLowerCase());

  }

  //splits the letters of the second value into separate values.

  var letters = [];
  letters.push(newArr[1]);
  letters = letters.toString();
  letters = letters.split('');

  //checks to see if there is a letter that isn't in the first value.

  for (var j = 0; j < letters.length; j++) {

    if (newArr[1].indexOf(letters[j]) == -1) {

      return false;

    }

  }

  return true;

}

mutation(["voodoo", "no"]);
var newArr=[];
功能突变(arr){
//使两个值都小写
对于(变量i=0;i

它适用于类似([“hello”,“hey”])的东西,但不适用于上述方法。为什么.indexOf方法在这个数组上不起作用?

我真的不知道代码应该做什么,但让我们一步一步地检查它:

var newArr = [];

function mutation(arr) {

  // Makes both values lowercase
  // arr is now ["voodoo", "no"]

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

    newArr.push(arr[i].toLowerCase());

  }
  // newArr has the same content: ["voodoo", "no"]
  //splits the letters of the second value into separate values.

  var letters = [];
  letters.push(newArr[1]); // letters is now ["no"]
  letters = letters.toString(); // letters is now "no"
  letters = letters.split(''); // letters is now ["n", "o"]

  //checks to see if there is a letter that isn't in the first value.

  for (var j = 0; j < letters.length; j++) { // foreach ["n", "o"]

    if (newArr[1].indexOf(letters[j]) == -1) { // "no".indexOf("n") and "no".indexOf("o") is always > -1 


      return false; // so false is never returned

    }

  }

  return true; // true is always returned

}

mutation(["voodoo", "no"]);


如果要测试第二个单词中是否有一个字母未包含在第一个单词中。

为什么
newArr
是一个全局变量,而不需要它?为什么要将数组转换为字符串?为什么首先要使用数组?错的是,代码完全按照它所说的做了…我做了,但是现在([“你好],[“嘿”])不起作用。你说的“不起作用”是什么意思?如果我将索引从1更改为0,并以[“hello”,“hey”]作为参数调用函数,则返回值为false。
if (newArr[1].indexOf(letters[j]) == -1)
if (newArr[0].indexOf(letters[j]) == -1)