function mutation(arr) {
var total = arr.map(function(x){return x.toLowerCase();});
var sec = total[1];
for(var i=0; i < sec.length; i++){
// console.log(sec[i]);
console.log(total.indexOf(sec[i]));
}
}
mutation(["hello", "hey"]);
请帮我理解。
的行的console.log(秒[I]);
每次在控制台上显示'hey'字符串的字母。那没关系! 现在,我需要知道的是为什么我在
中加入'秒[i]'的console.log(total.indexOf(秒[I]));
输出全为'-1',这意味着找不到方法.indexOf() 任何一封信!
答案 0 :(得分:0)
无法找到任何原因让你获得-1的原因。
答案 1 :(得分:0)
您正在针对单个字符检查total
数组。这意味着长度不相等,长度大于1的字符串不等于单个字符(字符串长度为1)。
基本上你这样做:
["hello", "hey"].indexOf('h') // -1 ["hello", "hey"].indexOf('e') // -1 ["hello", "hey"].indexOf('y') // -1
如果你想检查带有第二个字符的第一个字符串,那么你需要指定索引。
console.log(total[0].indexOf(sec[i]));
^^^
function mutation(arr) {
var total = arr.map(function (x) { return x.toLowerCase(); }),
sec = total[1],
i;
for (i = 0; i < sec.length; i++){
console.log(sec[i], total[0].indexOf(sec[i]));
}
}
mutation(["hello", "hey"]);