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)