指定された文字が、オブジェクトのキーにあるかを調べる方法(in演算子)

例)
const obj = { a: 1, b: 2, c: 3 };
というオブジェクトがあったとします。
指定した文字が"a"だった場合、オブジェクトのキーの中にあるので、true。
指定した文字が"z"だった場合、オブジェクト内には無いので、falseを返す。


方法

in演算子を使うことで、簡単にできます。


書き方

const obj = { a: 1, b: 2, c: 3 };

console.log("a" in obj); // true
console.log("d" in obj); // false

in演算子とは

in演算子は、左辺に指定したキーが右辺に指定したオブジェクトに含まれているかどうかを調べる演算子です。


応用

  const secretWords = {
  "0" : "a",
  "1" : "i",
  "2" : "f",
  "3" : "m",
  "4" : "i",
  "5" : "e",
  "6" : "n",
  "7" : " ",
};

let words = "170372465";

for (let i = 0; i < words.length; i++) {
  if (words[i] in secretWords) {
    words= words.replace(words[i], secretWords[words[i]]);
  }
}

console.log(words);
// i am fine

secretWordsという定数で、オブジェクトを設定しています。
wordsという変数が、文字が入っています。

wordsという文字列が、secretWordsのキーにあるかをチェックするときは、
words[i] in secretWords を使い、trueかfalseで返します。

trueだった場合、
words= words.replace(words[i], secretWords[words[i]]);
の処理を行います。

replace関数は、指定した文字列を置換する関数です。
replace(words[i], secretWords[words[i]]) というのは、
words[i] を、secretWords[words[i]] に置き換えますよ、という意味です。
i = 0の場合、
words[i] = 1 です。
secretWords[words[i]] は、secretWords[1] である為、値の"i" になります。

その結果、"i am fine"と、なります。


最後まで、見て頂きありがとうございました。

この記事が気に入ったらサポートをしてみませんか?