🌟
Javascript標準組み込みオブジェクトのまとめ
はじめに
最近久しぶりにコーディングテストに挑戦し始めました。現職に勤めてからはほとんど手をつけていなかったので、約5年ぶりですね。最初は簡単なアルゴリズム問題から練習してみたのですが、長年自動補完機能に頼ってきたせいか、基本的な文法を手動で書くことに苦戦しました。
それでも1問ずつ解くうちに少しずつ感覚を取り戻してきました。ただ、言語の組み込み関数を覚えてなかったため、それを使わずにコードを書くとコードが長くなり可読性が落ちたり、パフォーマンスが悪化することに気づきました。すべての組み込み関数を全部覚えるのは現実的ではありませんが、コーディングテストでよく使われる関数だけは整理しておきたいと思い、Zennに備忘録としてまとめてみようと思います。
コーディングテストでよく使われるJSの標準組み込みオブジェクト
文字列関連
- 文字列切り出し
-
substr
//指定した位置から指定した長さ分の文字列を返す //substr(切り出す元の文字列, 開始する位置, 長さ) let str = "Hello, World!"; let result = substr($string, 7, 5); console.log(result); // 出力: World
-
substring
//指定した開始と終了位置の文字列を返す //substring(開始する位置, 終了する位置) let str = "Hello, World!"; let result = str.substring(7, 12); console.log(result); // 出力: World
-
slice
//指定した開始位置から終了位置までの部分配列や文字列を返す //substring(開始する位置, 終了する位置) let arr = [1, 2, 3, 4, 5]; let result = arr.slice(1, 4); console.log(result); //出力: [2, 3, 4]
-
substr
- 大・小文字交換
-
toUpperCase
//文字列内のすべての文字を大文字に変換する let str = "Hello, World!"; let upperStr = str.toUpperCase(); console.log(upperStr); // 出力: HELLO, WORLD!
-
toLowerCase
//文字列内のすべての文字を小文字に変換する let str = "Hello, World!"; let lowerStr = str.toLowerCase(); console.log(lowerStr); // 出力: hello, world! // 出力: HELLO, WORLD!
-
toUpperCase
- 検索
-
indexOf
//文字列内で指定された文字列が最初に現れる位置を返す //indexOf(検索する文字列または文字, 検索を開始する位置(デフォルトは0)) let str = "Hello, World!"; let index = str.indexOf("World"); console.log(index); // 出力: 7
-
includes
//文字列内に指定した文字列が含まれているかどうかを確認 //includes(検索する文字列または文字, 検索を開始する位置(デフォルトは0)) let str = "Hello, World!"; let contains = str.includes("World"); console.log(contains); // 出力: true
-
indexOf
- 変換
-
replace
//文字列内の指定された部分文字列または正規表現と一致する最初の部分を置き換える //replace(置き換えたい部分文字列または正規表現, 置き換え後の文字列) let str = "Hello, World!"; let newStr = str.replace("World", "JavaScript"); console.log(newStr); // 出力: Hello, JavaScript!
-
split
//指定した区切りもじまたは正規表現で文字列を分割し、分割された部分を要素とする配列を返す //split(分割の基準となる文字列や正規表現)) let str = "apple,banana,cherry"; let fruits = str.split(","); console.log(fruits); // 出力: ["apple", "banana", "cherry"]
-
repeat
//文字列を指定した回数だけ繰り返し、繰り返された新しい文字列を返す //repeat(繰り返す回数。0以上の整数) let str = "Hello"; let repeatedStr = str.repeat(3); console.log(repeatedStr); // 出力: HelloHelloHello
-
toString
//文字列内に指定した文字列が含まれているかどうかを確認 //toString(検索する文字列または文字, 検索を開始する位置(デフォルトは0)) let str = "Hello, World!"; let contains = str.includes("World"); console.log(contains); // 出力: true
-
replace
Array関連
- 要素の追加・削除
//配列の末尾に1つ以上の要素を追加 //push(追加する要素) let arr = [1, 2, 3]; arr.push(4, 5); console.log(arr); // 出力: [1, 2, 3, 4, 5]
//配列の末尾から1つの要素を削除し、その要素を返す let arr = [1, 2, 3, 4]; let removed = arr.pop(); console.log(removed); // 出力: 4 console.log(arr); // 出力: [1, 2, 3]
//配列の先頭から1つの要素を削除し、その要素を返す let arr = [1, 2, 3]; let removed = arr.shift(); console.log(removed); // 出力: 1 console.log(arr); // 出力: [2, 3]
//配列の先頭に1つ以上の要素を追加し、配列を返す //unshift(追加する要素) let arr = [2, 3]; arr.unshift(0, 1); console.log(arr); // 出力: [0, 1, 2, 3]
//1つ以上の配列や値を結合し、新しい配列を返す //concat(結合する配列や値) let arr1 = [1, 2]; let arr2 = [3, 4]; let combined = arr1.concat(arr2, 5); console.log(combined); // 出力: [1, 2, 3, 4, 5]
//重複しない値のコレクションを管理 //Set(値) let set = new Set([1, 2, 2, 3, 4]); console.log(set); // 出力: Set { 1, 2, 3, 4 }
- ループ
//配列の各要素に対して指定した関数を実行する //forEach(callbackFunction(element, index, array)) let arr = [1, 2, 3]; arr.forEach((element, index) => { console.log(`Index ${index}: ${element}`); }); //出力: //Index 0: 1 //Index 1: 2 //Index 2: 3
//配列の各要素を変換し、新しい配列を返す //map(callbackFunction(element, index, array)) let arr = [1, 2, 3]; let doubled = arr.map(element => element * 2); console.log(doubled); //出力: [2, 4, 6]
//配列の全要素を一つの値に累積する //reduce(callbackFunction(accumulator, element, index, array), initialValue) let arr = [1, 2, 3]; let sum = arr.reduce((accumulator, element) => accumulator + element, 0); console.log(sum); //出力: 6
//配列の各要素をテストし、条件を満たす要素から新しい配列を返す //filter(callbackFunction(element, index, array)) let arr = [1, 2, 3, 4, 5]; let evenNumbers = arr.filter(element => element % 2 === 0); console.log(evenNumbers); //出力: [2, 4]
数値関連
-
Math.round
//数値を最も近い整数に丸める //Math.round(number) let num = 3.6; let rounded = Math.round(num); console.log(rounded); //出力: 4
-
Math.ceil
//数値を切り上げて最も近い整数にする //Math.ceil(number) let num = 3.1; let ceiling = Math.ceil(num); console.log(ceiling); //出力: 4
-
Math.floor
//数値を切り捨てて最も近い整数にする //Math.floor(number) let num = 3.9; let floor = Math.floor(num); console.log(floor); //出力: 3
-
Math.max
//引数の中で最大の数値を返す //Math.max(value1, value2, ..., valueN) let max = Math.max(1, 5, 10, 2); console.log(max); //出力: 10
-
Math.min
//引数の中で最小の数値を返す //Math.min(value1, value2, ..., valueN) let min = Math.min(1, 5, 10, 2); console.log(min); //出力: 1
-
Math.random
//0以上1未満のランダムな数値を生成する //Math.random() let random = Math.random(); console.log(random); //出力: 例えば 0.123456789(0以上1未満のランダムな数値)
-
parseInt
//文字列を整数に変換する //parseInt(string, radix) let str = "123"; let num = parseInt(str, 10); console.log(num); //出力: 123
進数変換
- 10進数→n進数(2、8、16)
- toString
//10進数を2進数に変換する //Number.toString(radix) let num = 10; let binary = num.toString(2); console.log(binary); //出力: "1010" let octal = num.toString(8); console.log(octal); //出力: "12" let num = 255; let hexadecimal = num.toString(16); console.log(hexadecimal); //出力: "ff"
- n進数(2、8、16)→10進数
- parseInt
//2進数を10進数に変換する //parseInt(string, radix) let binary = "1010"; let decimalFromBinary = parseInt(binary, 2); console.log(decimalFromBinary); //出力: 10 let octal = "12"; let decimalFromOctal = parseInt(octal, 8); console.log(decimalFromOctal); //出力: 10 let hexadecimal = "ff"; let decimalFromHexadecimal = parseInt(hexadecimal, 16); console.log(decimalFromHexadecimal); //出力: 255
参考資料
Discussion