JavaScriptの忘れがちなメソッド メモ
自分が使おうと思って、あれなんだっけ、となるメソッドをまとめます。 多分よく使うんですけど、間があくとあれ?っとなります。。
オブジェクトの列挙
const obj = { "one": 1, "two": 2, "three": 3 }; // `Object.keys`はキーの列挙した配列を返す console.log(Object.keys(obj)); // => ["one", "two", "three"] // `Object.values`は値を列挙した配列を返す console.log(Object.values(obj)); // => [1, 2, 3] // `Object.entries`は[キー, 値]の配列を返す console.log(Object.entries(obj)); // => [["one", 1], ["two", 2], ["three", 3]]
プロパティの存在確認: hasOwnProperty
const obj = { key: "value" }; // `obj`が`key`プロパティを持っているならtrue if (obj.hasOwnProperty("key")) { console.log("`object`は`key`プロパティを持っている"); }
オブジェクトのマージ: Object.assign
const objectA = { a: "a" }; const objectB = { b: "b" }; const merged = Object.assign({}, objectA, objectB); console.log(merged); // => { a: "a", b: "b" }
オブジェクトが配列かどうかを判定: Array.isArray
const obj = {}; const array = []; console.log(Array.isArray(obj)); // => false console.log(Array.isArray(array)); // => true
真偽値を取得
const array = ["Java", "JavaScript", "Ruby"]; // `includes`は含まれているなら`true`を返す if (array.includes("JavaScript")) { console.log("配列にJavaScriptが含まれている"); }
// colorプロパティを持つオブジェクトの配列 const colors = [ { "color": "red" }, { "color": "green" }, { "color": "blue" } ]; // `color`プロパティが"blue"のオブジェクトがあるかどうか const isIncludedBlueColor = colors.some((obj) => { return obj.color === "blue"; }); console.log(isIncludedBlueColor); // => true
配列同士を結合
const array = ["A", "B", "C"]; const newArray = array.concat(["D", "E"]); console.log(newArray); // => ["A", "B", "C", "D", "E"]
配列をフラット化
const array = [[["A"], "B"], "C"]; // 引数なしは 1 を指定した場合と同じ console.log(array.flat()); // => [["A"], "B", "C"] console.log(array.flat(1)); // => [["A"], "B", "C"] console.log(array.flat(2)); // => ["A", "B", "C"] // 全てをフラット化するには Inifinity を渡す console.log(array.flat(Infinity)); // => ["A", "B", "C"]
どんどん追記する予定。 いや、そもそも覚えなさいという話かもしれない。。
参考: JS Primerさん https://jsprimer.net/