回答編集履歴
3
null合体演算子を使うまでもないため、||に修正
answer
CHANGED
@@ -7,6 +7,6 @@
|
|
7
7
|
```javascript
|
8
8
|
let arr = [];
|
9
9
|
let arr2 = [{id: 1, name: 'apple'}];
|
10
|
-
const res4 = (typeof arr == 'object' && arr.length > 0 ? arr : null)
|
10
|
+
const res4 = (typeof arr == 'object' && arr.length > 0 ? arr : null) || (typeof arr2 == 'object' && arr2.length > 0 ? arr2 : null) || {};
|
11
11
|
console.log(res4);
|
12
12
|
```
|
2
変数の中身がそもそも入っているかも比較演算
answer
CHANGED
@@ -2,10 +2,11 @@
|
|
2
2
|
|
3
3
|
さて、配列変数に関しては、宣言時、代入の時点で初期化してしまうと、変数単体では真となりますので、
|
4
4
|
配列変数の長さで、比較演算してはいかがでしょうか?
|
5
|
+
また、変数がオブジェクトかどうか(配列はオブジェクトになる)の比較も追加しました。
|
5
6
|
|
6
7
|
```javascript
|
7
8
|
let arr = [];
|
8
9
|
let arr2 = [{id: 1, name: 'apple'}];
|
9
|
-
const res4 = arr.length > 0 ? arr : arr2
|
10
|
+
const res4 = (typeof arr == 'object' && arr.length > 0 ? arr : null) ?? (typeof arr2 == 'object' && arr2.length > 0 ? arr2 : null) ?? {};
|
10
11
|
console.log(res4);
|
11
12
|
```
|
1
ちょこちょこ文言修正
answer
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
まず、**または**の論理演算は、`||`というように、**ヴァーティカルライン二本**で結ぶのが正しいです。
|
2
2
|
|
3
3
|
さて、配列変数に関しては、宣言時、代入の時点で初期化してしまうと、変数単体では真となりますので、
|
4
|
-
変数の長さで、
|
4
|
+
配列変数の長さで、比較演算してはいかがでしょうか?
|
5
5
|
|
6
6
|
```javascript
|
7
7
|
let arr = [];
|