この記事では、JavaScriptのオブジェクトで存在チェックを行う方法について見ていきたいと思います。
指定したプロパティの有無を調べる方法
では、オブジェクトの中に指定した名前のプロパティが存在するかどうかを調べる方法について見ていきましょう。
let fruits = {"apple": 100, "banana": 200, "strawberry": 500};
let names = Object.keys(fruits);
// 配列["apple", "banana", "strawberry"]を取得
let checked1 = names.some(fruit => fruit === "strawberry");
let checked2 = names.some(fruit => fruit === "grape");
console.log(checked1);
console.log(checked2);
この例では、Object.keys()を用いてオブジェクトのプロパティ名からなる配列[“apple”, “banana”, “strawberry”]を取得しています。
そして、その配列にsome()で指定した条件に合う文字列が存在するかどうかを真偽値で返すという内容ですね。
なので、変数「checked1」には「strawberry」が、変数「checked2」には「grape」がオブジェクトのプロパティ名に存在するかどうかが返されるはずです。
では見てみると
こうですね。
1つ目に指定した「strawberry」はオブジェクトに存在するので「true」が、2つ目に指定した「grape」はオブジェクトに存在しないので「false」が返されています。
同じように、Object.values()を用いることで、オブジェクトの中にsome()で指定した条件に合う値が存在しているかどうかを調べることができます。
指定した値の有無を調べる方法
let fruits = {"apple": 100, "banana": 200, "strawberry": 500};
let names = Object.values(fruits);
// 配列[100, 200, 500]を取得
let checked1 = names.some(price => price > 500);
let checked2 = names.some(price => price < 200);
console.log(checked1);
console.log(checked2);
この例では、Object.values()でオブジェクトの中のプロパティの値からなる配列[100, 200, 500]を取得しています。
そして、その配列の中にsome()で指定した条件の数値が存在するかどうかを真偽値で返すという内容ですね。
なので、「checked1」には500より大きい数値が存在するかどうかが、
「checked2」には200より小さい数値が存在するかどうかが返されるはずです。
では見てみると
こうですね。
500より大きい数値は存在しないので「false」が、200より小さい数値は存在するので「true」が返されていますね。
まとめ
以上に見てきたように、
Object.keys()やObject.values()を用いることで、オブジェクトのプロパティ名やその値を配列で返すことができます。
そして、その配列に対してsome()を用いることで、指定した条件に合ったものが存在するかどうかを調べることができます。
コメント