オプショナルチェイニングで配列の空判定
空配列の判定で便利なものを知った。
参考
https://qiita.com/kozzzz/items/42108bc96b3a0e7c53d5
オプショナルチェイニングは、プロパティや要素にアクセスする際にnullまたはundefinedでないことを確認する構文です。
ChatGPT
const myArray = null; // もしくは undefined
// 配列がnullまたはundefinedでないかを判定し、配列が空かどうかを判定
if (myArray?.length === 0) {
console.log('配列は空です');
} else if (myArray) {
console.log('配列は空ではありません');
} else {
console.log('配列がnullまたはundefinedです');
}
以上のように ? . をつかって判定できる。
ほかの使用例
配列の要素へのアクセス
const myArray = [1, 2, 3];
// オプショナルチェイニングを使用して配列の要素にアクセス
const firstElement = myArray?.[0]; // もしmyArrayが存在しなければundefinedを返す
オブジェクトのプロパティへのアクセス
const person = {
name: 'John',
age: 30
};
// オプショナルチェイニングを使用してプロパティにアクセス
const address = person.address?.city; // もしaddressが存在しなければundefinedを返す
関数の引数へ渡す
function greet(name) {
return `Hello, ${name}`;
}
const person = {
name: 'John'
};
// オプショナルチェイニングを使用して関数の呼び出しを安全に行う
const message = greet(person?.name);
// もしpersonが存在しなければundefinedを返す
三項演算子のように「?」を使って判定し、trueなら「.」を使ってチェインメソッドとして処理する感じか。
PHPの場合は、Null合体演算子
// 変数がnullまたは未定義の場合、デフォルト値を設定
$name = $_GET['name'] ?? 'Guest';
echo $name;
// PHP8からNull合体代入演算子が使える
$_GET['name'] ??= 'Guest';
使いどころが難しいような。。。