回答編集履歴

3

null合体演算子を使うまでもないため、||に修正

2020/08/27 06:18

投稿

miyabi_pudding
miyabi_pudding

スコア9528

test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  let arr2 = [{id: 1, name: 'apple'}];
18
18
 
19
- const res4 = (typeof arr == 'object' && arr.length > 0 ? arr : null) ?? (typeof arr2 == 'object' && arr2.length > 0 ? arr2 : null) ?? {};
19
+ const res4 = (typeof arr == 'object' && arr.length > 0 ? arr : null) || (typeof arr2 == 'object' && arr2.length > 0 ? arr2 : null) || {};
20
20
 
21
21
  console.log(res4);
22
22
 

2

変数の中身がそもそも入っているかも比較演算

2020/08/27 06:18

投稿

miyabi_pudding
miyabi_pudding

スコア9528

test CHANGED
@@ -5,6 +5,8 @@
5
5
  さて、配列変数に関しては、宣言時、代入の時点で初期化してしまうと、変数単体では真となりますので、
6
6
 
7
7
  配列変数の長さで、比較演算してはいかがでしょうか?
8
+
9
+ また、変数がオブジェクトかどうか(配列はオブジェクトになる)の比較も追加しました。
8
10
 
9
11
 
10
12
 
@@ -14,7 +16,7 @@
14
16
 
15
17
  let arr2 = [{id: 1, name: 'apple'}];
16
18
 
17
- const res4 = arr.length > 0 ? arr : arr2 || {};
19
+ const res4 = (typeof arr == 'object' && arr.length > 0 ? arr : null) ?? (typeof arr2 == 'object' && arr2.length > 0 ? arr2 : null) ?? {};
18
20
 
19
21
  console.log(res4);
20
22
 

1

ちょこちょこ文言修正

2020/08/27 06:13

投稿

miyabi_pudding
miyabi_pudding

スコア9528

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  さて、配列変数に関しては、宣言時、代入の時点で初期化してしまうと、変数単体では真となりますので、
6
6
 
7
- 変数の長さで、論路演算してはいかがでしょうか?
7
+ 配列変数の長さで、比較演算してはいかがでしょうか?
8
8
 
9
9
 
10
10