回答編集履歴

8

テキスト追加

2018/07/13 01:35

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -56,7 +56,7 @@
56
56
 
57
57
 
58
58
 
59
- **(2)** `id` と `name`等しいかを検証する前に、念のため先頭に `x` が空の配列ではない検証を追加して、
59
+ **(2)** `x[0]` と`e` との比較で、プロパティ `id`、`name`ともに等しいかを検証する前に、念のため先頭に `x` が空の配列ではない検証を追加して、
60
60
 
61
61
 
62
62
 

7

テキスト追加

2018/07/13 01:35

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -52,7 +52,7 @@
52
52
 
53
53
 
54
54
 
55
- **(1)** `x.push(e)` は、`e`が追加された後の`x`の長さを返すので、`x.push(e)` の返す値は常に1以上の整数であり、1以上の整数を論理値として評価すると `true`になります。これを `some`メソッドから `true` を返させるために使っています。
55
+ **(1)** `x.push(e)` は、`e`が追加された後の`x`の長さを返すので、`x.push(e)` の返す値は常に1以上の整数であり、1以上の整数を論理値として評価すると `true`になります。これを [some](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/some) メソッドから `true` を返させるために使っています。
56
56
 
57
57
 
58
58
 

6

テキスト追加

2018/07/13 01:08

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -40,11 +40,11 @@
40
40
 
41
41
 
42
42
 
43
- 上記のコードに出てくる論理積
43
+ 上記のコード以下の行
44
44
 
45
45
 
46
46
 
47
- `x[0].id == e.id && x[0].name == e.name && x.push(e)`
47
+ `a.some(x => x[0].id == e.id && x[0].name == e.name && x.push(e)) || a.push([e]); `
48
48
 
49
49
 
50
50
 
@@ -52,7 +52,7 @@
52
52
 
53
53
 
54
54
 
55
- **(1)** `x.push(e)` は、`e`が追加された後の`x`の長さを返すので、`x.push(e)` の返す値は常に1以上の整数であり、1以上の整数を論理値として評価すると`true`である利用しています。
55
+ **(1)** `x.push(e)` は、`e`が追加された後の`x`の長さを返すので、`x.push(e)` の返す値は常に1以上の整数であり、1以上の整数を論理値として評価すると `true`になります。 `some`メソッドから `true` を返させるために使っています。
56
56
 
57
57
 
58
58
 

5

テキスト修正

2018/07/13 01:05

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -36,37 +36,31 @@
36
36
 
37
37
  ---
38
38
 
39
- **補足1**
39
+ **補足**
40
40
 
41
41
 
42
42
 
43
- `a.some(x => x[0].id == e.id && x[0].name == e.name && x.push(e))`
43
+ 上記のコードに出てくる、論理積
44
44
 
45
45
 
46
46
 
47
- の部分については、 `x.push(e)` は、`e`が追加された後の`x`の長さを返すので、
47
+ `x[0].id == e.id && x[0].name == e.name && x.push(e)`
48
-
49
- `x.push(e)` の返す値は常に 1以上の整数であり、1以上の整数を
50
-
51
- 論理値として評価すると、`true`であることを利用しています。
52
48
 
53
49
 
54
50
 
55
- **補足2**
51
+ について、以下の2点を補足します。
56
52
 
57
53
 
58
54
 
59
- `x => x[0].id == e.id && ・・・`
55
+ **(1)** `x.push(e)` は、`e`が追加された後の`x`の長さを返すので、`x.push(e)` の返す値は常に1以上の整数であり、1以上の整数を論理値として評価すると、`true`であることを利用しています。
60
56
 
61
57
 
62
58
 
63
- と書いているところで、 `id` と `name` が等しいかを検証する前に、
59
+ **(2)** `id` と `name` が等しいかを検証する前に、念のため先頭に `x` が空の配列ではない検証を追加して、
64
-
65
- 念のため `x` が空の配列ではない検証を追加して、
66
60
 
67
61
 
68
62
 
69
- `x => x.length > 0 && x[0].id == e.id && ・・・`
63
+ `x.length > 0 && x[0].id == e.id && ・・・`
70
64
 
71
65
 
72
66
 

4

ソース修正

2018/07/12 23:46

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  ```javascript
12
12
 
13
- const array_3 = array_1.reduce((a, e) => {
13
+ var array_3 = array_1.reduce(function(a, e) {
14
14
 
15
15
  a.some(x => x[0].id == e.id && x[0].name == e.name && x.push(e)) || a.push([e]);
16
16
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- [https://jsfiddle.net/jun68ykt/Lfy3odqu/40/](https://jsfiddle.net/jun68ykt/Lfy3odqu/40/)
29
+ [https://jsfiddle.net/jun68ykt/Lfy3odqu/42/](https://jsfiddle.net/jun68ykt/Lfy3odqu/42/)
30
30
 
31
31
 
32
32
 

3

テキスト修正

2018/07/12 23:17

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -36,11 +36,23 @@
36
36
 
37
37
  ---
38
38
 
39
- **補足**
39
+ **補足1**
40
40
 
41
41
 
42
42
 
43
+ `a.some(x => x[0].id == e.id && x[0].name == e.name && x.push(e))`
44
+
45
+
46
+
47
+ の部分については、 `x.push(e)` は、`e`が追加された後の`x`の長さを返すので、
48
+
49
+ `x.push(e)` の返す値は常に 1以上の整数であり、1以上の整数を
50
+
51
+ 論理値として評価すると、`true`であることを利用しています。
52
+
53
+
54
+
43
- 上記のコードで、
55
+ **補足2**
44
56
 
45
57
 
46
58
 

2

テキスト修正

2018/07/12 21:56

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -31,3 +31,41 @@
31
31
 
32
32
 
33
33
  参考になれば幸いです。
34
+
35
+
36
+
37
+ ---
38
+
39
+ **補足**
40
+
41
+
42
+
43
+ 上記のコードで、
44
+
45
+
46
+
47
+ `x => x[0].id == e.id && ・・・`
48
+
49
+
50
+
51
+ と書いているところで、 `id` と `name` が等しいかを検証する前に、
52
+
53
+ 念のため `x` が空の配列ではない検証を追加して、
54
+
55
+
56
+
57
+ `x => x.length > 0 && x[0].id == e.id && ・・・`
58
+
59
+
60
+
61
+ と**しなくてもよい** 理由は、`a` に要素が追加されるのは、
62
+
63
+
64
+
65
+ `a.push([e])`
66
+
67
+
68
+
69
+ のときしかないので、`a` の要素である配列 `x` は空ではなく、
70
+
71
+ 少なくとも1個の要素を持つことが分かっているからです。

1

テキスト修正

2018/07/12 21:47

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  const array_3 = array_1.reduce((a, e) => {
14
14
 
15
- a.some(x => x.length > 0 && x[0].id == e.id && x[0].name == e.name && x.push(e)) || a.push([e]);
15
+ a.some(x => x[0].id == e.id && x[0].name == e.name && x.push(e)) || a.push([e]);
16
16
 
17
17
  return a;
18
18
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- [https://jsfiddle.net/jun68ykt/Lfy3odqu/38/](https://jsfiddle.net/jun68ykt/Lfy3odqu/38/)
29
+ [https://jsfiddle.net/jun68ykt/Lfy3odqu/40/](https://jsfiddle.net/jun68ykt/Lfy3odqu/40/)
30
30
 
31
31
 
32
32