为什么 .indexOf() 返回 -1?
Why .indexOf() is returning -1?
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(sec[i]);
每次在控制台上显示 'hey' 字符串的字母。那没关系!
现在,我需要知道的是为什么我在
中调用 'sec[i]'
console.log(total.indexOf(sec[i]));
输出全是'-1',表示没有找到方法.indexOf()
任意字母!
它找不到任何导致您得到 -1 的原因。
您正在根据单个字符检查 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"]);
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(sec[i]);
每次在控制台上显示 'hey' 字符串的字母。那没关系! 现在,我需要知道的是为什么我在
中调用 'sec[i]'console.log(total.indexOf(sec[i]));
输出全是'-1',表示没有找到方法.indexOf() 任意字母!
它找不到任何导致您得到 -1 的原因。
您正在根据单个字符检查 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"]);