質問編集履歴
24
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -69,7 +69,7 @@
|
|
69
69
|
もう少し効率の良いやりかたがあれば。
|
70
70
|
|
71
71
|
```javascript
|
72
|
-
// 先にdraggedRowDataの順番とorderを入れ替えした。サンプルのため
|
72
|
+
// 先にdraggedRowDataの順番とorderを入れ替えした。サンプルのため直接配列を書いてます。
|
73
73
|
let draggedRowData = [
|
74
74
|
{id: 2, text: "TEST4", order: 1, isDeleted: false}
|
75
75
|
{id: 1, text: "TEST1", order: 2, isDeleted: false},
|
23
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -75,7 +75,7 @@
|
|
75
75
|
{id: 1, text: "TEST1", order: 2, isDeleted: false},
|
76
76
|
];
|
77
77
|
|
78
|
-
let mergedRowData = tempRowData.reduce((accumulator, currentValue
|
78
|
+
let mergedRowData = tempRowData.reduce((accumulator, currentValue) => {
|
79
79
|
let rData = draggedRowData.find((e) => e.id === currentValue.id);
|
80
80
|
accumulator.push(rData ? rData : currentValue);
|
81
81
|
return accumulator;
|
22
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -63,7 +63,7 @@
|
|
63
63
|
|
64
64
|
追記
|
65
65
|
|
66
|
-
draggedRowData
|
66
|
+
先にdraggedRowDataの順番とorderを入れ替えした。
|
67
67
|
reduceを修正して、reduce処理後に、sort、再連番して、期待する結果になりました、少し冗長になってしまったかもしれません。
|
68
68
|
|
69
69
|
もう少し効率の良いやりかたがあれば。
|
21
訂正
title
CHANGED
File without changes
|
body
CHANGED
@@ -97,7 +97,7 @@
|
|
97
97
|
/*
|
98
98
|
結果
|
99
99
|
[
|
100
|
-
{ id: 2, text: '
|
100
|
+
{ id: 2, text: 'TEST4', order: 1, isDeleted: false },
|
101
101
|
{ id: 1, text: 'TEST1', order: 2, isDeleted: false },
|
102
102
|
{ id: 3, text: 'TEST3', order: 3, isDeleted: true }
|
103
103
|
]
|
20
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -23,7 +23,7 @@
|
|
23
23
|
|
24
24
|
let draggedRowData = [
|
25
25
|
{id: 1, text: "TEST1", order: 2, isDeleted: false},
|
26
|
-
{id: 2, text: "
|
26
|
+
{id: 2, text: "TEST4", order: 1, isDeleted: false}
|
27
27
|
];
|
28
28
|
|
29
29
|
const mergedRowData = tempRowData.reduce((accumulator, currentValue) => {
|
@@ -54,7 +54,7 @@
|
|
54
54
|
|
55
55
|
取得したいデータ
|
56
56
|
[
|
57
|
-
{ id: 2, text: '
|
57
|
+
{ id: 2, text: 'TEST4', order: 1, isDeleted: false },
|
58
58
|
{ id: 1, text: 'TEST1', order: 2, isDeleted: false },
|
59
59
|
{ id: 3, text: 'TEST3', order: 3, isDeleted: true }
|
60
60
|
]
|
@@ -71,7 +71,7 @@
|
|
71
71
|
```javascript
|
72
72
|
// 先にdraggedRowDataの順番とorderを入れ替えした。サンプルのためコードは省略
|
73
73
|
let draggedRowData = [
|
74
|
-
{id: 2, text: "
|
74
|
+
{id: 2, text: "TEST4", order: 1, isDeleted: false}
|
75
75
|
{id: 1, text: "TEST1", order: 2, isDeleted: false},
|
76
76
|
];
|
77
77
|
|
19
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -69,21 +69,9 @@
|
|
69
69
|
もう少し効率の良いやりかたがあれば。
|
70
70
|
|
71
71
|
```javascript
|
72
|
-
let tempRowData = [
|
73
|
-
{id: 1, text: "TEST1", order: 1, isDeleted: false},
|
74
|
-
{id: 2, text: "TEST2", order: 2, isDeleted: false},
|
75
|
-
|
72
|
+
// 先にdraggedRowDataの順番とorderを入れ替えした。サンプルのためコードは省略
|
76
|
-
];
|
77
|
-
|
78
73
|
let draggedRowData = [
|
79
|
-
{id: 1, text: "TEST1", order: 2, isDeleted: false},
|
80
74
|
{id: 2, text: "TEST2", order: 1, isDeleted: false}
|
81
|
-
];
|
82
|
-
|
83
|
-
// 先にdraggedRowDataのorderを再連番した
|
84
|
-
// サンプルのため、そのまま変数に入れてます。
|
85
|
-
draggedRowData = [
|
86
|
-
{id: 2, text: "TEST2", order: 1, isDeleted: false}
|
87
75
|
{id: 1, text: "TEST1", order: 2, isDeleted: false},
|
88
76
|
];
|
89
77
|
|
18
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -81,14 +81,12 @@
|
|
81
81
|
];
|
82
82
|
|
83
83
|
// 先にdraggedRowDataのorderを再連番した
|
84
|
+
// サンプルのため、そのまま変数に入れてます。
|
84
|
-
draggedRowData
|
85
|
+
draggedRowData = [
|
86
|
+
{id: 2, text: "TEST2", order: 1, isDeleted: false}
|
85
|
-
|
87
|
+
{id: 1, text: "TEST1", order: 2, isDeleted: false},
|
86
|
-
|
88
|
+
];
|
87
89
|
|
88
|
-
draggedRowData.forEach((currentValue, index) => {
|
89
|
-
currentValue.order = index + 1;
|
90
|
-
});
|
91
|
-
|
92
90
|
let mergedRowData = tempRowData.reduce((accumulator, currentValue, index) => {
|
93
91
|
let rData = draggedRowData.find((e) => e.id === currentValue.id);
|
94
92
|
accumulator.push(rData ? rData : currentValue);
|
17
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -85,7 +85,7 @@
|
|
85
85
|
return a.order - b.order;
|
86
86
|
});
|
87
87
|
|
88
|
-
|
88
|
+
draggedRowData.forEach((currentValue, index) => {
|
89
89
|
currentValue.order = index + 1;
|
90
90
|
});
|
91
91
|
|
16
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -63,6 +63,7 @@
|
|
63
63
|
|
64
64
|
追記
|
65
65
|
|
66
|
+
draggedRowDataをsort、再連番して、
|
66
67
|
reduceを修正して、reduce処理後に、sort、再連番して、期待する結果になりました、少し冗長になってしまったかもしれません。
|
67
68
|
|
68
69
|
もう少し効率の良いやりかたがあれば。
|
15
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -79,16 +79,18 @@
|
|
79
79
|
{id: 2, text: "TEST2", order: 1, isDeleted: false}
|
80
80
|
];
|
81
81
|
|
82
|
+
// 先にdraggedRowDataのorderを再連番した
|
83
|
+
draggedRowData.sort((a, b) => {
|
84
|
+
return a.order - b.order;
|
85
|
+
});
|
86
|
+
|
87
|
+
let draggedRowData.forEach((currentValue, index) => {
|
88
|
+
currentValue.order = index + 1;
|
89
|
+
});
|
90
|
+
|
82
91
|
let mergedRowData = tempRowData.reduce((accumulator, currentValue, index) => {
|
83
92
|
let rData = draggedRowData.find((e) => e.id === currentValue.id);
|
84
|
-
|
85
|
-
if (rData) {
|
86
|
-
accumulator.push(rData);
|
87
|
-
} else {
|
88
|
-
currentValue.order = index + 1;
|
89
|
-
|
93
|
+
accumulator.push(rData ? rData : currentValue);
|
90
|
-
}
|
91
|
-
|
92
94
|
return accumulator;
|
93
95
|
}, []);
|
94
96
|
|
14
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -59,4 +59,58 @@
|
|
59
59
|
{ id: 3, text: 'TEST3', order: 3, isDeleted: true }
|
60
60
|
]
|
61
61
|
*/
|
62
|
+
```
|
63
|
+
|
64
|
+
追記
|
65
|
+
|
66
|
+
reduceを修正して、reduce処理後に、sort、再連番して、期待する結果になりました、少し冗長になってしまったかもしれません。
|
67
|
+
|
68
|
+
もう少し効率の良いやりかたがあれば。
|
69
|
+
|
70
|
+
```javascript
|
71
|
+
let tempRowData = [
|
72
|
+
{id: 1, text: "TEST1", order: 1, isDeleted: false},
|
73
|
+
{id: 2, text: "TEST2", order: 2, isDeleted: false},
|
74
|
+
{id: 3, text: "TEST3", order: 3, isDeleted: true}
|
75
|
+
];
|
76
|
+
|
77
|
+
let draggedRowData = [
|
78
|
+
{id: 1, text: "TEST1", order: 2, isDeleted: false},
|
79
|
+
{id: 2, text: "TEST2", order: 1, isDeleted: false}
|
80
|
+
];
|
81
|
+
|
82
|
+
let mergedRowData = tempRowData.reduce((accumulator, currentValue, index) => {
|
83
|
+
let rData = draggedRowData.find((e) => e.id === currentValue.id);
|
84
|
+
|
85
|
+
if (rData) {
|
86
|
+
accumulator.push(rData);
|
87
|
+
} else {
|
88
|
+
currentValue.order = index + 1;
|
89
|
+
accumulator.push(currentValue);
|
90
|
+
}
|
91
|
+
|
92
|
+
return accumulator;
|
93
|
+
}, []);
|
94
|
+
|
95
|
+
// orderでソート
|
96
|
+
mergedRowData.sort((a, b) => {
|
97
|
+
return a.order - b.order;
|
98
|
+
});
|
99
|
+
|
100
|
+
// 再連番
|
101
|
+
mergedRowData.forEach((currentValue, index) => {
|
102
|
+
currentValue.order = index + 1;
|
103
|
+
});
|
104
|
+
|
105
|
+
tempRowData = mergedRowData;
|
106
|
+
console.log(tempRowData);
|
107
|
+
|
108
|
+
/*
|
109
|
+
結果
|
110
|
+
[
|
111
|
+
{ id: 2, text: 'TEST2', order: 1, isDeleted: false },
|
112
|
+
{ id: 1, text: 'TEST1', order: 2, isDeleted: false },
|
113
|
+
{ id: 3, text: 'TEST3', order: 3, isDeleted: true }
|
114
|
+
]
|
115
|
+
*/
|
62
116
|
```
|
13
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -26,7 +26,7 @@
|
|
26
26
|
{id: 2, text: "TEST2", order: 1, isDeleted: false}
|
27
27
|
];
|
28
28
|
|
29
|
-
const
|
29
|
+
const mergedRowData = tempRowData.reduce((accumulator, currentValue) => {
|
30
30
|
let rData = draggedRowData.find((r) => r.id === currentValue.id );
|
31
31
|
|
32
32
|
if (rData) {
|
@@ -41,7 +41,7 @@
|
|
41
41
|
}, []);
|
42
42
|
|
43
43
|
|
44
|
-
tempRowData =
|
44
|
+
tempRowData = mergedRowData;
|
45
45
|
console.log(tempRowData);
|
46
46
|
|
47
47
|
/*
|
12
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -27,7 +27,7 @@
|
|
27
27
|
];
|
28
28
|
|
29
29
|
const mergedData = tempRowData.reduce((accumulator, currentValue) => {
|
30
|
-
let rData =
|
30
|
+
let rData = draggedRowData.find((r) => r.id === currentValue.id );
|
31
31
|
|
32
32
|
if (rData) {
|
33
33
|
rData.order = index + 1;
|
11
修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
javascriptで2つの配列を後の配列
|
1
|
+
javascriptで2つの配列を後の配列優先でマージする方法を教えてください
|
body
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
javascriptで2つの配列を後の配列
|
1
|
+
javascriptで2つの配列を後の配列優先でマージする方法を教えてください
|
2
2
|
|
3
3
|
[javascriptで2つの連想配列のマージを効率良く実行する方法を教えて下さい。](https://teratail.com/questions/321600)
|
4
4
|
から、2つの配列をマージをする方法で、順番を考える必要がでてきたのですがが、
|
10
修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
javascriptで
|
1
|
+
javascriptで2つの配列を後の配列のorder優先でマージする方法を教えてください
|
body
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
javascriptで2つの配列を後の配列のorder優先でマージする方法を教えてください
|
2
2
|
|
3
3
|
[javascriptで2つの連想配列のマージを効率良く実行する方法を教えて下さい。](https://teratail.com/questions/321600)
|
4
4
|
から、2つの配列をマージをする方法で、順番を考える必要がでてきたのですがが、
|
@@ -7,16 +7,13 @@
|
|
7
7
|
|
8
8
|
(前提条件)
|
9
9
|
draggedRowData <= tempRowData
|
10
|
-
orderの変更時はその他のカラムデータは更新しない
|
11
10
|
|
12
11
|
わかるかたいらっしゃいましたら、ご教授お願いします。
|
13
12
|
|
14
13
|
下記のソースは2つの配列をマージしているのですが、tempRowData優先になっています。
|
15
14
|
その理由は draggedRowData.find((e) => e.id === currentValue.id); を使っているから、tempRowDataの順番でdraggedRowDataを取得してしまうところまでわかっているのですが。
|
16
15
|
|
17
|
-
tempRowDataにマージせず、orderのみを振りなおす必要があるかもしれません。
|
18
16
|
|
19
|
-
|
20
17
|
```javascript
|
21
18
|
let tempRowData = [
|
22
19
|
{id: 1, text: "TEST1", order: 1, isDeleted: false},
|
9
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
|
8
8
|
(前提条件)
|
9
9
|
draggedRowData <= tempRowData
|
10
|
-
orderの変更時はその他のデータは更新しない
|
10
|
+
orderの変更時はその他のカラムデータは更新しない
|
11
11
|
|
12
12
|
わかるかたいらっしゃいましたら、ご教授お願いします。
|
13
13
|
|
8
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
下記のソースは2つの配列をマージしているのですが、tempRowData優先になっています。
|
15
15
|
その理由は draggedRowData.find((e) => e.id === currentValue.id); を使っているから、tempRowDataの順番でdraggedRowDataを取得してしまうところまでわかっているのですが。
|
16
16
|
|
17
|
-
tempRowDataにマージせず、orderを振りなおす必要
|
17
|
+
tempRowDataにマージせず、orderのみを振りなおす必要があるかもしれません。
|
18
18
|
|
19
19
|
|
20
20
|
```javascript
|
@@ -30,7 +30,6 @@
|
|
30
30
|
];
|
31
31
|
|
32
32
|
const mergedData = tempRowData.reduce((accumulator, currentValue) => {
|
33
|
-
// この方法だと、tempRowDataが優先で、draggedRowDataが優先じゃなかった。
|
34
33
|
let rData = rowData.find((r) => r.id === currentValue.id );
|
35
34
|
|
36
35
|
if (rData) {
|
7
修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
javascriptで
|
1
|
+
javascriptで後の配列のorderで、前の配列のorderを再構築する方法を教えてください
|
body
CHANGED
@@ -1,16 +1,22 @@
|
|
1
|
-
|
1
|
+
後の配列のorderで、前の配列のorderを再構築する方法を教えてください。
|
2
2
|
|
3
3
|
[javascriptで2つの連想配列のマージを効率良く実行する方法を教えて下さい。](https://teratail.com/questions/321600)
|
4
|
-
から、2つの配列をマージをする方法で、順番を考えて
|
4
|
+
から、2つの配列をマージをする方法で、順番を考える必要がでてきたのですがが、
|
5
5
|
|
6
|
-
|
6
|
+
後の配列のorderで、前の配列のorderを再構築をしたいと考えています。
|
7
|
-
ご教授お願いします。
|
8
7
|
|
8
|
+
(前提条件)
|
9
|
+
draggedRowData <= tempRowData
|
10
|
+
orderの変更時はその他のデータは更新しない
|
11
|
+
|
12
|
+
わかるかたいらっしゃいましたら、ご教授お願いします。
|
13
|
+
|
9
|
-
下記のソースはマージがtempRowData優先になっています。
|
14
|
+
下記のソースは2つの配列をマージしているのですが、tempRowData優先になっています。
|
10
15
|
その理由は draggedRowData.find((e) => e.id === currentValue.id); を使っているから、tempRowDataの順番でdraggedRowDataを取得してしまうところまでわかっているのですが。
|
11
|
-
マージをdraggedRowData優先にする方法が知りたいです。
|
12
16
|
|
17
|
+
tempRowDataにマージせず、orderを振りなおす必要はあるかもしれません。
|
13
18
|
|
19
|
+
|
14
20
|
```javascript
|
15
21
|
let tempRowData = [
|
16
22
|
{id: 1, text: "TEST1", order: 1, isDeleted: false},
|
6
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
下記のソースはマージがtempRowData優先になっています。
|
10
10
|
その理由は draggedRowData.find((e) => e.id === currentValue.id); を使っているから、tempRowDataの順番でdraggedRowDataを取得してしまうところまでわかっているのですが。
|
11
|
-
マージを
|
11
|
+
マージをdraggedRowData優先にする方法が知りたいです。
|
12
12
|
|
13
13
|
|
14
14
|
```javascript
|
5
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
ご教授お願いします。
|
8
8
|
|
9
9
|
下記のソースはマージがtempRowData優先になっています。
|
10
|
-
その理由は draggedRowData.find((e) => e.id === currentValue.id); を使っているからです。
|
10
|
+
その理由は draggedRowData.find((e) => e.id === currentValue.id); を使っているから、tempRowDataの順番でdraggedRowDataを取得してしまうところまでわかっているのですが。
|
11
11
|
マージをdraggedData優先にする方法が知りたいです。
|
12
12
|
|
13
13
|
|
4
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
ご教授お願いします。
|
8
8
|
|
9
9
|
下記のソースはマージがtempRowData優先になっています。
|
10
|
-
その理由は find((e) => e.id === currentValue.id); を使っているからです。
|
10
|
+
その理由は draggedRowData.find((e) => e.id === currentValue.id); を使っているからです。
|
11
11
|
マージをdraggedData優先にする方法が知りたいです。
|
12
12
|
|
13
13
|
|
3
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -6,7 +6,9 @@
|
|
6
6
|
draggedRowData <= tempRowData の関係の時、マージをdraggedData優先にする方法について、わかるかたいらっしゃいましたら、
|
7
7
|
ご教授お願いします。
|
8
8
|
|
9
|
-
下記のソースはマージがtempRowData優先になっています。
|
9
|
+
下記のソースはマージがtempRowData優先になっています。
|
10
|
+
その理由は find((e) => e.id === currentValue.id); を使っているからです。
|
11
|
+
マージをdraggedData優先にする方法が知りたいです。
|
10
12
|
|
11
13
|
|
12
14
|
```javascript
|
2
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -48,7 +48,7 @@
|
|
48
48
|
{ id: 3, text: 'TEST3', order: 3, isDeleted: true }
|
49
49
|
]
|
50
50
|
|
51
|
-
|
51
|
+
取得したいデータ
|
52
52
|
[
|
53
53
|
{ id: 2, text: 'TEST2', order: 1, isDeleted: false },
|
54
54
|
{ id: 1, text: 'TEST1', order: 2, isDeleted: false },
|
1
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -39,8 +39,17 @@
|
|
39
39
|
|
40
40
|
tempRowData = mergedData;
|
41
41
|
console.log(tempRowData);
|
42
|
+
|
42
43
|
/*
|
44
|
+
現在
|
43
45
|
[
|
46
|
+
{ id: 1, text: 'TEST1', order: 1, isDeleted: false },
|
47
|
+
{ id: 2, text: 'TEST2', order: 2, isDeleted: false },
|
48
|
+
{ id: 3, text: 'TEST3', order: 3, isDeleted: true }
|
49
|
+
]
|
50
|
+
|
51
|
+
表示したい方法
|
52
|
+
[
|
44
53
|
{ id: 2, text: 'TEST2', order: 1, isDeleted: false },
|
45
54
|
{ id: 1, text: 'TEST1', order: 2, isDeleted: false },
|
46
55
|
{ id: 3, text: 'TEST3', order: 3, isDeleted: true }
|