回答編集履歴
8
テキスト追加
answer
CHANGED
@@ -27,7 +27,7 @@
|
|
27
27
|
|
28
28
|
**(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` を返させるために使っています。
|
29
29
|
|
30
|
-
**(2)** `
|
30
|
+
**(2)** `x[0]` と`e` との比較で、プロパティ `id`、`name`ともに等しいかを検証する前に、念のため先頭に `x` が空の配列ではない検証を追加して、
|
31
31
|
|
32
32
|
`x.length > 0 && x[0].id == e.id && ・・・`
|
33
33
|
|
7
テキスト追加
answer
CHANGED
@@ -25,7 +25,7 @@
|
|
25
25
|
|
26
26
|
について、以下の2点を補足します。
|
27
27
|
|
28
|
-
**(1)** `x.push(e)` は、`e`が追加された後の`x`の長さを返すので、`x.push(e)` の返す値は常に1以上の整数であり、1以上の整数を論理値として評価すると `true`になります。これを
|
28
|
+
**(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` を返させるために使っています。
|
29
29
|
|
30
30
|
**(2)** `id` と `name` が等しいかを検証する前に、念のため先頭に `x` が空の配列ではない検証を追加して、
|
31
31
|
|
6
テキスト追加
answer
CHANGED
@@ -19,13 +19,13 @@
|
|
19
19
|
---
|
20
20
|
**補足**
|
21
21
|
|
22
|
-
上記のコード
|
22
|
+
上記のコード中、以下の行
|
23
23
|
|
24
|
-
`x[0].id == e.id && x[0].name == e.name && x.push(e)`
|
24
|
+
`a.some(x => x[0].id == e.id && x[0].name == e.name && x.push(e)) || a.push([e]); `
|
25
25
|
|
26
26
|
について、以下の2点を補足します。
|
27
27
|
|
28
|
-
**(1)** `x.push(e)` は、`e`が追加された後の`x`の長さを返すので、`x.push(e)` の返す値は常に1以上の整数であり、1以上の整数を論理値として評価すると
|
28
|
+
**(1)** `x.push(e)` は、`e`が追加された後の`x`の長さを返すので、`x.push(e)` の返す値は常に1以上の整数であり、1以上の整数を論理値として評価すると `true`になります。これを `some`メソッドから `true` を返させるために使っています。
|
29
29
|
|
30
30
|
**(2)** `id` と `name` が等しいかを検証する前に、念のため先頭に `x` が空の配列ではない検証を追加して、
|
31
31
|
|
5
テキスト修正
answer
CHANGED
@@ -17,22 +17,19 @@
|
|
17
17
|
参考になれば幸いです。
|
18
18
|
|
19
19
|
---
|
20
|
-
**補足
|
20
|
+
**補足**
|
21
21
|
|
22
|
-
|
22
|
+
上記のコードに出てくる、論理積
|
23
23
|
|
24
|
-
|
24
|
+
`x[0].id == e.id && x[0].name == e.name && x.push(e)`
|
25
|
-
`x.push(e)` の返す値は常に 1以上の整数であり、1以上の整数を
|
26
|
-
論理値として評価すると、`true`であることを利用しています。
|
27
25
|
|
28
|
-
|
26
|
+
について、以下の2点を補足します。
|
29
27
|
|
30
|
-
`x
|
28
|
+
**(1)** `x.push(e)` は、`e`が追加された後の`x`の長さを返すので、`x.push(e)` の返す値は常に1以上の整数であり、1以上の整数を論理値として評価すると、`true`であることを利用しています。
|
31
29
|
|
32
|
-
|
30
|
+
**(2)** `id` と `name` が等しいかを検証する前に、念のため先頭に `x` が空の配列ではない検証を追加して、
|
33
|
-
念のため `x` が空の配列ではない検証を追加して、
|
34
31
|
|
35
|
-
`x
|
32
|
+
`x.length > 0 && x[0].id == e.id && ・・・`
|
36
33
|
|
37
34
|
と**しなくてもよい** 理由は、`a` に要素が追加されるのは、
|
38
35
|
|
4
ソース修正
answer
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
以下を考えました。
|
5
5
|
|
6
6
|
```javascript
|
7
|
-
|
7
|
+
var array_3 = array_1.reduce(function(a, e) {
|
8
8
|
a.some(x => x[0].id == e.id && x[0].name == e.name && x.push(e)) || a.push([e]);
|
9
9
|
return a;
|
10
10
|
}, []);
|
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
以下にて、動作確認しています。
|
14
14
|
|
15
|
-
[https://jsfiddle.net/jun68ykt/Lfy3odqu/
|
15
|
+
[https://jsfiddle.net/jun68ykt/Lfy3odqu/42/](https://jsfiddle.net/jun68ykt/Lfy3odqu/42/)
|
16
16
|
|
17
17
|
参考になれば幸いです。
|
18
18
|
|
3
テキスト修正
answer
CHANGED
@@ -17,10 +17,16 @@
|
|
17
17
|
参考になれば幸いです。
|
18
18
|
|
19
19
|
---
|
20
|
-
**補足**
|
20
|
+
**補足1**
|
21
21
|
|
22
|
-
|
22
|
+
`a.some(x => x[0].id == e.id && x[0].name == e.name && x.push(e))`
|
23
23
|
|
24
|
+
の部分については、 `x.push(e)` は、`e`が追加された後の`x`の長さを返すので、
|
25
|
+
`x.push(e)` の返す値は常に 1以上の整数であり、1以上の整数を
|
26
|
+
論理値として評価すると、`true`であることを利用しています。
|
27
|
+
|
28
|
+
**補足2**
|
29
|
+
|
24
30
|
`x => x[0].id == e.id && ・・・`
|
25
31
|
|
26
32
|
と書いているところで、 `id` と `name` が等しいかを検証する前に、
|
2
テキスト修正
answer
CHANGED
@@ -14,4 +14,23 @@
|
|
14
14
|
|
15
15
|
[https://jsfiddle.net/jun68ykt/Lfy3odqu/40/](https://jsfiddle.net/jun68ykt/Lfy3odqu/40/)
|
16
16
|
|
17
|
-
参考になれば幸いです。
|
17
|
+
参考になれば幸いです。
|
18
|
+
|
19
|
+
---
|
20
|
+
**補足**
|
21
|
+
|
22
|
+
上記のコードで、
|
23
|
+
|
24
|
+
`x => x[0].id == e.id && ・・・`
|
25
|
+
|
26
|
+
と書いているところで、 `id` と `name` が等しいかを検証する前に、
|
27
|
+
念のため `x` が空の配列ではない検証を追加して、
|
28
|
+
|
29
|
+
`x => x.length > 0 && x[0].id == e.id && ・・・`
|
30
|
+
|
31
|
+
と**しなくてもよい** 理由は、`a` に要素が追加されるのは、
|
32
|
+
|
33
|
+
`a.push([e])`
|
34
|
+
|
35
|
+
のときしかないので、`a` の要素である配列 `x` は空ではなく、
|
36
|
+
少なくとも1個の要素を持つことが分かっているからです。
|
1
テキスト修正
answer
CHANGED
@@ -5,13 +5,13 @@
|
|
5
5
|
|
6
6
|
```javascript
|
7
7
|
const array_3 = array_1.reduce((a, e) => {
|
8
|
-
a.some(x => x
|
8
|
+
a.some(x => x[0].id == e.id && x[0].name == e.name && x.push(e)) || a.push([e]);
|
9
9
|
return a;
|
10
10
|
}, []);
|
11
11
|
```
|
12
12
|
|
13
13
|
以下にて、動作確認しています。
|
14
14
|
|
15
|
-
[https://jsfiddle.net/jun68ykt/Lfy3odqu/
|
15
|
+
[https://jsfiddle.net/jun68ykt/Lfy3odqu/40/](https://jsfiddle.net/jun68ykt/Lfy3odqu/40/)
|
16
16
|
|
17
17
|
参考になれば幸いです。
|