言語チャレンジ3への挑戦。
問題は下記。

・Find e, and then return index of e as number.
input:"abcdefd"
output:4

今回は見つけたindexOf()メソッドを使用しました。

indexOf()メソッドとは

indexOf() メソッドは、呼び出す String オブジェクト中で、 fromIndex から検索を始め、指定された値が最初に現れたインデックスを返します。値が見つからない場合は -1 を返します。

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf

対象の文字列に指定の文字列が含まれているか検索し見つかった場合は位置を返す。

今回は文字列の中から’e’を見つけて、そのindexを返したい。
回答は下記としました。

function f(input){
  const result = input.indexOf('e'); 
  return result;
}

const input = "abcdefd";
const output = f(input);
console.log(output);
//4

第二引数で、検索を開始するインデックスを指定できる。
下の例でいくと、’e’は4と7の位置にあるが、検索開始を5としているので、5以降の’e’を検索することになる。

const array = "abcdefde";
console.log(array.indexOf('e', 5));
//7

lastIndexOf()とは

lastIndexOf() メソッドは、呼び出した String オブジェクトの中で、 fromIndex から前方向に検索を始め、指定された値が最後に現れたインデックスを返します。値が見つからない場合は -1 を返します。

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/lastIndexOf

indexOf()メソッドの反対で、対象の文字列に指定した文字列が含まれるかどうかを文字列の最後から先頭に向かって検索し、見つかった場合は最初の位置を返す。

const array = "abcdefde";
console.log(array.lastIndexOf('e'));
//7

第二引数を指定すると、指定した場所より前に向かって検索し、最初に見つかったインデックスを返す。
下記の例でいくと、6の位置よりも前にある’e’で最初に見つかったindexを返す。

const array = "abcdefde";
console.log(array.lastIndexOf('e',6));
//4

indexOf()もlastIndexOf()も検索した対象が存在しない場合、-1を返す。

const array = "abcdefde";
console.log(array.lastIndexOf('z'));
//-1

c.sakyou

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA