帮助初学者解决一个简单的JS索引问题



问题如下:

编写一个函数,stringIndexOf,它接受两个字符串:第一个是单词,第二个是单个字符。

函数应返回单词中存在字符的第一个索引,如果找不到字符,则返回-1。不要使用内置的String.indexOf((函数。

真正让我困惑的是,它说不要使用内置的string.indexOf((函数。如果没有它,我无法解决这个问题…

以下是我使用.indexOf((方法提出的一些解决方案(我知道前两个是多余的,实际上与第三个相同,但我想尝试用尽我熟悉的概念(。如果有人能给我一个使用JS的替代解决方案,并像解释婴儿一样解释它,我将不胜感激。

// 1st Solution using an If... Else statement
function stringIndexOf(string, character) {
if (string.includes(character)) {
console.log(string.indexOf(character));
} else { console.log('-1'); }
}

// 2nd solution using a For... Of loop

function stringIndexOf(string, character) {
for (let index of character) {
console.log(string.indexOf(character));
}
}
// 3rd Solution using a simple indexOf

function stringIndexOf(string, character) {
console.log(string.indexOf(character));
}

这个问题应该很容易,因为这是我正在参加的训练营前课程的一部分——我是否误解了这个问题不使用内置函数的含义?在这种情况下,排除indexOf((的使用是否更可取?提前感谢!

您可以这样做:

/*The function should return the first index in the word at which the character exists or -1 if the character is not found. Do not use the built in String.indexOf() function.*/
function stringIndexOf(str, letter) {
if (str.length && letter.length === 1) {
const lettersArray = str.split('');
for (let i = 0; i < lettersArray.length; i++) {
if (lettersArray[i] === letter) {
return i;
}
}
}
return -1;
}
console.log(stringIndexOf("dog", "g"));

最新更新