JavaScriptで配列やオブジェクトにnull値が含まれているか確認する方法
JavaScriptの配列やオブジェクトにnull値が含まれているかどうかを確認したい場合は、includes()メソッドを使うのが最もシンプルな方法です。
includes()は、配列の中に指定した値が存在するかどうかを判定し、存在すればtrue、存在しなければfalseを返します。オブジェクトの場合は、Object.values()と組み合わせることで、すべてのプロパティの値に対してnullチェックを行えます。
コード例
以下に具体的なサンプルコードを示します。
var nameArray1 = ["John", "David", "Mike", "Sam", null];
if (nameArray1.includes(null) == true) {
console.log("array1 contains null value");
} else {
console.log("array1 does not contains null value");
}
var nameArray2 = ["Adam", "Bob", "Robert"];
if (nameArray2.includes(null) == true) {
console.log("array2 contains null value");
} else {
console.log("array2 does not contains null value");
}
var objectData = { name: null };
if (Object.values(objectData).includes(null)) {
console.log("object contains null value");
} else {
console.log("object does not contains null value");
}プログラムの実行方法
上記のプログラムを実行するには、Node.js環境で以下のコマンドを使用します。ここでは、ファイル名をdemo314.jsとして保存しています。
node demo314.js
実行結果
このプログラムを実行すると、コンソールには次のような出力が表示されます。
PS C:\Users\Amit\javascript-code> node demo314.js array1 contains null value array2 does not contains null value object contains null value
コードの解説
- 配列の場合:
nameArray1にはnullが含まれているため、includes(null)はtrueを返します。一方、nameArray2にはnullが含まれていないため、falseとなります。 - オブジェクトの場合:
Object.values(objectData)によってオブジェクトのすべての値が配列として取得され、その後includes(null)でnullの有無を確認できます。
このように、includes()とObject.values()を組み合わせれば、配列・オブジェクトのどちらに対しても簡単にnull値のチェックが可能です。
-
JavaScriptでnull値を持つプロパティを含む配列オブジェクトを並べ替える方法
JavaScriptでは、複数のオブジェクトを格納した配列を扱う際、一部のプロパティ(キー)に null が設定されているケースによく出会います。この記事では、そのような null 値を含む配列を適切にソートする方法を解説します。要件の整理今回作成するJavaScriptの関数は、以下の条件を満たす必要があります。・オブジェクトの配列を受け取る・オブジェクトの中には、値として null が割り当てられているキーが存在する場合がある・null を持つオブジェクトはすべて配列の末尾に移動する実装のポイントこの問題を解く鍵は、null を比較可能な数値に置き換えてからソートすることです。ここでは n
-
【JavaScript】オブジェクトの配列を配列のオブジェクトに変換する方法
問題の概要JavaScriptでは、複数のオブジェクトを含む配列を、同じキーごとに値をまとめた「配列を持つオブジェクト」へ変換したいケースがあります。例えば、次のようなオブジェクトの配列があったとしましょう。const nights = [ { 2016-06-25: 32, 2016-06-26: 151, 2016-06-27: null }, { 2016-06-24: null, 2016-06-25: null, 2016-06-26: null }, { 2016-06-26: 11, 2016-06-27: 31, 2016-06-28: 31 }, ];