質問編集履歴
8
説明の補足と、分かりにくい部分の修正を行いました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -261,21 +261,13 @@
|
|
261
261
|
|
262
262
|
// arrayの上書き処理
|
263
263
|
setArray(oldArray);
|
264
|
-
|
265
264
|
```
|
266
265
|
|
267
266
|
`getArray`や`setArray`の先はAPIになっており、そのまま`array`を取得・上書きしてくれます。
|
268
267
|
|
269
268
|
上の例ですと、
|
270
269
|
`idC`や`nestID`など階層が深いものもあり、その都度バラバラなので違うケースのときにうまく対応できずそれぞれのケースを用意しているのが現状です。
|
271
|
-
|
270
|
+
|
272
|
-
```
|
273
|
-
{
|
274
|
-
id: xxxx,
|
275
|
-
value: yyyy,
|
276
|
-
}
|
277
|
-
```
|
278
|
-
というもので、このセットだけは崩れません。
|
279
271
|
技術不足ですいませんが、何卒よろしくお願い致します。
|
280
272
|
|
281
273
|
#### 追加1
|
@@ -313,8 +305,30 @@
|
|
313
305
|
]
|
314
306
|
}
|
315
307
|
```
|
316
|
-
のように、親のvalueの中に
|
308
|
+
のように、親のvalueの中に新たな要素ができます。
|
317
309
|
valueは配列を持つことができ、繰り返しネストすることができます。
|
310
|
+
```
|
311
|
+
{
|
312
|
+
id: xxxx,
|
313
|
+
value: [
|
314
|
+
[
|
315
|
+
{
|
316
|
+
id: aaaaa,
|
317
|
+
value: bbbbb,
|
318
|
+
},
|
319
|
+
{
|
320
|
+
id: ccc,
|
321
|
+
value: ddd,
|
322
|
+
},
|
323
|
+
],
|
324
|
+
[
|
325
|
+
....同様
|
326
|
+
]
|
327
|
+
]
|
328
|
+
}
|
329
|
+
```
|
330
|
+
と繰り返すことができます。
|
331
|
+
|
318
332
|
取得したい要素のidは、
|
319
333
|
```
|
320
334
|
lists(x)/item/idC/nestIDC1
|
7
一部valueについての補足を行いました
title
CHANGED
File without changes
|
body
CHANGED
@@ -314,19 +314,18 @@
|
|
314
314
|
}
|
315
315
|
```
|
316
316
|
のように、親のvalueの中に配列ができその中に同じ形のオブジェクトができます。
|
317
|
+
valueは配列を持つことができ、繰り返しネストすることができます。
|
317
318
|
取得したい要素のidは、
|
318
319
|
```
|
319
320
|
lists(x)/item/idC/nestIDC1
|
320
|
-
|
321
|
+
|
321
|
-
となり、xは、
|
322
|
-
```
|
323
322
|
x = {
|
324
323
|
id: target_name,
|
325
324
|
value: target_value
|
326
325
|
}
|
327
326
|
```
|
328
327
|
のような形で情報を得ることはできます。
|
329
|
-
そのため、取得したい
|
328
|
+
そのため、取得したいxが含まれている
|
330
329
|
```
|
331
330
|
listsの直下のidがx.id, valueがx.valueのが含まれる要素
|
332
331
|
```
|
6
一部文字数制限のため形式省略いたしました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -21,27 +21,25 @@
|
|
21
21
|
value: [
|
22
22
|
{
|
23
23
|
id: "idA",
|
24
|
-
value: "
|
24
|
+
value: "val A",
|
25
25
|
},
|
26
26
|
{
|
27
27
|
id: "idB",
|
28
|
-
value:
|
28
|
+
value: "val B",
|
29
|
-
1, 2, 3
|
30
|
-
],
|
31
29
|
},
|
32
30
|
{
|
33
31
|
id: "idC",
|
34
32
|
value: [
|
35
33
|
{
|
36
34
|
id: "nestID_C1",
|
37
|
-
value: "
|
35
|
+
value: "val C1",
|
38
36
|
},
|
39
37
|
{
|
40
38
|
id: "nestID_C2",
|
41
39
|
value: [
|
42
40
|
{
|
43
41
|
id: "nestID_C2-1",
|
44
|
-
value: "
|
42
|
+
value: "val nest c2-1"
|
45
43
|
}
|
46
44
|
],
|
47
45
|
},
|
@@ -52,7 +50,7 @@
|
|
52
50
|
value: [
|
53
51
|
{
|
54
52
|
id: "nestID_D1",
|
55
|
-
value: "nest
|
53
|
+
value: "nest d-1",
|
56
54
|
},
|
57
55
|
{
|
58
56
|
id: "nestID_D2",
|
@@ -94,27 +92,25 @@
|
|
94
92
|
value: [
|
95
93
|
{
|
96
94
|
id: "idA",
|
97
|
-
value: "
|
95
|
+
value: "val A",
|
98
96
|
},
|
99
97
|
{
|
100
98
|
id: "idB",
|
101
|
-
value:
|
99
|
+
value: "val B,
|
102
|
-
1, 2, 3
|
103
|
-
],
|
104
100
|
},
|
105
101
|
{
|
106
102
|
id: "idC",
|
107
103
|
value: [
|
108
104
|
{
|
109
105
|
id: "nestID_C1",
|
110
|
-
value: "
|
106
|
+
value: "val nest c1",
|
111
107
|
},
|
112
108
|
{
|
113
109
|
id: "nestID_C2",
|
114
110
|
value: [
|
115
111
|
{
|
116
112
|
id: "nestID_C2-1",
|
117
|
-
value: "
|
113
|
+
value: "val nested c2-1"
|
118
114
|
}
|
119
115
|
],
|
120
116
|
},
|
@@ -125,7 +121,7 @@
|
|
125
121
|
value: [
|
126
122
|
{
|
127
123
|
id: "nestID_D1",
|
128
|
-
value: "nest
|
124
|
+
value: "nest d-1,
|
129
125
|
},
|
130
126
|
{
|
131
127
|
id: "nestID_D2",
|
5
選択要素Xについて、ミスと記載もれがありましたので追記致しました。文字数制限になり一部を省略致しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -52,9 +52,7 @@
|
|
52
52
|
value: [
|
53
53
|
{
|
54
54
|
id: "nestID_D1",
|
55
|
-
value:
|
55
|
+
value: "nest idD d-1,
|
56
|
-
|
57
|
-
],
|
58
56
|
},
|
59
57
|
{
|
60
58
|
id: "nestID_D2",
|
@@ -127,9 +125,7 @@
|
|
127
125
|
value: [
|
128
126
|
{
|
129
127
|
id: "nestID_D1",
|
130
|
-
value:
|
128
|
+
value: "nest idD d-1,
|
131
|
-
|
132
|
-
],
|
133
129
|
},
|
134
130
|
{
|
135
131
|
id: "nestID_D2",
|
@@ -170,8 +166,7 @@
|
|
170
166
|
現在の私のやり方ですと、
|
171
167
|
|
172
168
|
```
|
173
|
-
// noのvalueが200のものを上書きしたい
|
174
|
-
// lists(200)/item/idC/
|
169
|
+
// lists({id:"no", value: 200})/item/idC/nestID_C2/nestID_C2-1
|
175
170
|
// lists直下のNOは、状況に合わせてこちらで選択する。
|
176
171
|
// 上で記載した通り、今回は、lists下は200を取得する
|
177
172
|
var oldArray = getArray(); // arrayの配列を取得
|
@@ -214,7 +209,7 @@
|
|
214
209
|
```
|
215
210
|
|
216
211
|
// no100の中にある、valueが400のnestID_D2-1を上書きしたい
|
217
|
-
// lists(100)/item/idD/nestID_D2(400)/nestID_D2-1
|
212
|
+
// lists({id:"no", value: 100})/item/idD/nestID_D2({id:"nestID_D2-NO", value: 400})/nestID_D2-1
|
218
213
|
// lists直下のNOと、nestID_D2下のNOは、状況に合わせてこちらで選択する。
|
219
214
|
// 上で記載した通り、今回は、lists下は100, nestID_D2下は400を取得する
|
220
215
|
var oldArray = getArray(); // arrayの配列を取得
|
@@ -276,7 +271,7 @@
|
|
276
271
|
`getArray`や`setArray`の先はAPIになっており、そのまま`array`を取得・上書きしてくれます。
|
277
272
|
|
278
273
|
上の例ですと、
|
279
|
-
`idC`や`nestID`など階層が深いものもあり、その都度バラバラなので違うケースのときにうまく対応できずそれぞれのケースを用意しているのが現状です。
|
274
|
+
`idC`や`nestID`など階層が深いものもあり、その都度バラバラなので違うケースのときにうまく対応できずそれぞれのケースを用意しているのが現状です。
|
280
275
|
決まっているのは、
|
281
276
|
```
|
282
277
|
{
|
@@ -285,7 +280,6 @@
|
|
285
280
|
}
|
286
281
|
```
|
287
282
|
というもので、このセットだけは崩れません。
|
288
|
-
|
289
283
|
技術不足ですいませんが、何卒よろしくお願い致します。
|
290
284
|
|
291
285
|
#### 追加1
|
@@ -324,21 +318,27 @@
|
|
324
318
|
}
|
325
319
|
```
|
326
320
|
のように、親のvalueの中に配列ができその中に同じ形のオブジェクトができます。
|
327
|
-
|
328
321
|
取得したい要素のidは、
|
329
|
-
|
330
322
|
```
|
331
323
|
lists(x)/item/idC/nestIDC1
|
332
324
|
```
|
325
|
+
となり、xは、
|
326
|
+
```
|
327
|
+
x = {
|
328
|
+
id: target_name,
|
329
|
+
value: target_value
|
330
|
+
}
|
331
|
+
```
|
333
332
|
のような形で情報を得ることはできます。
|
334
|
-
|
335
|
-
しかし、no(x)の項目はこちらで必要に応じて選択する必要があります。
|
336
333
|
そのため、取得したいnoが含まれている
|
337
334
|
```
|
338
|
-
lists
|
335
|
+
listsの直下のidがx.id, valueがx.valueのが含まれる要素
|
339
336
|
```
|
340
337
|
などは、状況に応じて取得する工程は必要になります。
|
341
338
|
|
342
339
|
#### 追記2
|
343
340
|
参考例を追加いたしました。
|
344
|
-
追加内容としましては、同一階層にあるものが1階層目にしかなく誤解がありそうでしたので参考配列を変更し、例を追加いたしました。
|
341
|
+
追加内容としましては、同一階層にあるものが1階層目にしかなく誤解がありそうでしたので参考配列を変更し、例を追加いたしました。
|
342
|
+
|
343
|
+
#### 追記3
|
344
|
+
選択要素のxの仕様にもれがあったので、追記いたしました。
|
4
表記にミスがありましたので、修正いたしました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -33,14 +33,14 @@
|
|
33
33
|
id: "idC",
|
34
34
|
value: [
|
35
35
|
{
|
36
|
-
id: "
|
36
|
+
id: "nestID_C1",
|
37
37
|
value: "value nested c1",
|
38
38
|
},
|
39
39
|
{
|
40
|
-
id: "
|
40
|
+
id: "nestID_C2",
|
41
41
|
value: [
|
42
42
|
{
|
43
|
-
id: "
|
43
|
+
id: "nestID_C2-1",
|
44
44
|
value: "value nested c2 - 1"
|
45
45
|
}
|
46
46
|
],
|
3
例を追加しました。また分かりにくい文書を変更しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -47,6 +47,42 @@
|
|
47
47
|
},
|
48
48
|
],
|
49
49
|
},
|
50
|
+
{
|
51
|
+
id: "idD",
|
52
|
+
value: [
|
53
|
+
{
|
54
|
+
id: "nestID_D1",
|
55
|
+
value: [
|
56
|
+
|
57
|
+
],
|
58
|
+
},
|
59
|
+
{
|
60
|
+
id: "nestID_D2",
|
61
|
+
value: [
|
62
|
+
[
|
63
|
+
{
|
64
|
+
id: "nestID_D2-NO",
|
65
|
+
value: "300"
|
66
|
+
},
|
67
|
+
{
|
68
|
+
id: "nestID_D2-1",
|
69
|
+
value: "value nested d2 no-300 - 1"
|
70
|
+
}
|
71
|
+
],
|
72
|
+
[
|
73
|
+
{
|
74
|
+
id: "nestID_D2-NO",
|
75
|
+
value: "400"
|
76
|
+
},
|
77
|
+
{
|
78
|
+
id: "nestID_D2-1",
|
79
|
+
value: "value nested d2 no-400 - 1"
|
80
|
+
}
|
81
|
+
],
|
82
|
+
],
|
83
|
+
},
|
84
|
+
],
|
85
|
+
},
|
50
86
|
]
|
51
87
|
}
|
52
88
|
],
|
@@ -72,42 +108,79 @@
|
|
72
108
|
id: "idC",
|
73
109
|
value: [
|
74
110
|
{
|
75
|
-
id: "
|
111
|
+
id: "nestID_C1",
|
76
112
|
value: "value nested c1",
|
77
113
|
},
|
78
114
|
{
|
79
|
-
id: "
|
115
|
+
id: "nestID_C2",
|
80
116
|
value: [
|
81
117
|
{
|
82
|
-
id: "
|
118
|
+
id: "nestID_C2-1",
|
83
119
|
value: "value nested c2 - 1"
|
84
120
|
}
|
85
121
|
],
|
86
122
|
},
|
87
123
|
],
|
88
124
|
},
|
125
|
+
{
|
126
|
+
id: "idD",
|
127
|
+
value: [
|
128
|
+
{
|
129
|
+
id: "nestID_D1",
|
130
|
+
value: [
|
131
|
+
|
132
|
+
],
|
133
|
+
},
|
134
|
+
{
|
135
|
+
id: "nestID_D2",
|
136
|
+
value: [
|
137
|
+
[
|
138
|
+
{
|
139
|
+
id: "nestID_D2-NO",
|
140
|
+
value: "300"
|
141
|
+
},
|
142
|
+
{
|
143
|
+
id: "nestID_D2-1",
|
144
|
+
value: "value nested d2 no-300 - 1"
|
145
|
+
}
|
146
|
+
],
|
147
|
+
[
|
148
|
+
{
|
149
|
+
id: "nestID_D2-NO",
|
150
|
+
value: "400"
|
151
|
+
},
|
152
|
+
{
|
153
|
+
id: "nestID_D2-1",
|
154
|
+
value: "value nested d2 no-400 - 1"
|
155
|
+
}
|
156
|
+
],
|
157
|
+
],
|
158
|
+
},
|
159
|
+
],
|
160
|
+
},
|
89
161
|
]
|
90
162
|
}
|
91
163
|
],
|
92
164
|
]
|
93
165
|
}
|
94
|
-
]
|
166
|
+
];
|
95
167
|
```
|
96
168
|
|
97
169
|
この配列で、それぞれを置き換えたいです。
|
98
170
|
現在の私のやり方ですと、
|
99
171
|
|
100
172
|
```
|
101
|
-
|
102
|
-
// noのvalueが200のもの
|
173
|
+
// noのvalueが200のものを上書きしたい
|
174
|
+
// lists(200)/item/idC/nestIDC2/nestIDC2_1
|
175
|
+
// lists直下のNOは、状況に合わせてこちらで選択する。
|
176
|
+
// 上で記載した通り、今回は、lists下は200を取得する
|
103
177
|
var oldArray = getArray(); // arrayの配列を取得
|
104
|
-
var lists = oldArray.find(el => el.id == "lists");
|
178
|
+
var lists = oldArray.find(el => el.id == "lists");
|
105
|
-
var itemIndex = -1;
|
179
|
+
var itemIndex = -1;
|
106
180
|
var targetNo = 200;
|
107
181
|
|
108
182
|
// no200を探す
|
109
183
|
for (let i=0; i<lists.value.length; i++) {
|
110
|
-
// noの要素を検索
|
111
184
|
const _item = lists.value[i].find(el => el.id == "no");
|
112
185
|
if (_item.value == targetNo) {
|
113
186
|
itemIndex = i;
|
@@ -120,16 +193,16 @@
|
|
120
193
|
return;
|
121
194
|
}
|
122
195
|
|
123
|
-
// no 200
|
196
|
+
// no 200の配列を取得
|
124
197
|
var list = lists.value[itemIndex];
|
125
198
|
|
126
199
|
// itemを取得
|
127
200
|
var item = list.find(el => el.id == "item");
|
128
201
|
|
129
|
-
// itemのvalueの中から、変更したいものを取り出す => 例:
|
202
|
+
// itemのvalueの中から、変更したいものを取り出す => 例:nestID_C2 -> nestID_C2-1のvalueを書き換える
|
130
203
|
var idC = item.value.find(el => el.id == "idC");
|
131
|
-
var nestIDC2 = idC.value.find(el => el.id == "
|
204
|
+
var nestIDC2 = idC.value.find(el => el.id == "nestID_C2");
|
132
|
-
var nestIDC2_1 = nestIDC2.value.find(el => el.id == "
|
205
|
+
var nestIDC2_1 = nestIDC2.value.find(el => el.id == "nestID_C2-1");
|
133
206
|
|
134
207
|
// 書き換え
|
135
208
|
nestIDC2_1.value = "new value";
|
@@ -138,6 +211,68 @@
|
|
138
211
|
setArray(oldArray);
|
139
212
|
```
|
140
213
|
|
214
|
+
```
|
215
|
+
|
216
|
+
// no100の中にある、valueが400のnestID_D2-1を上書きしたい
|
217
|
+
// lists(100)/item/idD/nestID_D2(400)/nestID_D2-1
|
218
|
+
// lists直下のNOと、nestID_D2下のNOは、状況に合わせてこちらで選択する。
|
219
|
+
// 上で記載した通り、今回は、lists下は100, nestID_D2下は400を取得する
|
220
|
+
var oldArray = getArray(); // arrayの配列を取得
|
221
|
+
var lists = oldArray.find(el => el.id == "lists");
|
222
|
+
var itemIndex = -1;
|
223
|
+
var targetNo = 100;
|
224
|
+
|
225
|
+
// lists直下のno100を探す
|
226
|
+
for (let i=0; i<lists.value.length; i++) {
|
227
|
+
const _item = lists.value[i].find(el => el.id == "no");
|
228
|
+
if (_item.value == targetNo) {
|
229
|
+
itemIndex = i;
|
230
|
+
break;
|
231
|
+
}
|
232
|
+
}
|
233
|
+
|
234
|
+
// 存在しないときは終了
|
235
|
+
if (itemIndex == -1) {
|
236
|
+
return;
|
237
|
+
}
|
238
|
+
|
239
|
+
// no 100の配列を取得
|
240
|
+
var list = lists.value[itemIndex];
|
241
|
+
|
242
|
+
// itemを取得
|
243
|
+
var item = list.find(el => el.id == "item");
|
244
|
+
|
245
|
+
// itemのvalueの中から、変更したいものを取り出す
|
246
|
+
var idD = item.value.find(el => el.id == "idD");
|
247
|
+
var nestIDC2 = idD.value.find(el => el.id == "nestID_D2");
|
248
|
+
|
249
|
+
// no400を探す
|
250
|
+
var nestedTargetID = 400;
|
251
|
+
var nestedItemIndex = -1;
|
252
|
+
|
253
|
+
for (let i=0; i<nestIDC2.value.length; i++) {
|
254
|
+
const _item = nestIDC2.value[i].find(el => el.id == "nestID_D2-NO");
|
255
|
+
if (_item.value == nestedTargetID) {
|
256
|
+
nestedItemIndex = i;
|
257
|
+
break;
|
258
|
+
}
|
259
|
+
}
|
260
|
+
|
261
|
+
// 存在しないときは終了
|
262
|
+
if (nestedItemIndex == -1) {
|
263
|
+
return;
|
264
|
+
}
|
265
|
+
|
266
|
+
var nestID_D2_1 = nestIDC2.value.find(el => el.id == "nestID_D2-1");
|
267
|
+
|
268
|
+
// 書き換え
|
269
|
+
nestID_D2_1.value = "new value";
|
270
|
+
|
271
|
+
// arrayの上書き処理
|
272
|
+
setArray(oldArray);
|
273
|
+
|
274
|
+
```
|
275
|
+
|
141
276
|
`getArray`や`setArray`の先はAPIになっており、そのまま`array`を取得・上書きしてくれます。
|
142
277
|
|
143
278
|
上の例ですと、
|
@@ -149,11 +284,11 @@
|
|
149
284
|
value: yyyy,
|
150
285
|
}
|
151
286
|
```
|
152
|
-
というもので、こ
|
287
|
+
というもので、このセットだけは崩れません。
|
153
288
|
|
154
289
|
技術不足ですいませんが、何卒よろしくお願い致します。
|
155
290
|
|
156
|
-
#### 追加
|
291
|
+
#### 追加1
|
157
292
|
ご質問にありましたルールについて追記いたします。
|
158
293
|
基本的には、
|
159
294
|
```
|
@@ -193,13 +328,17 @@
|
|
193
328
|
取得したい要素のidは、
|
194
329
|
|
195
330
|
```
|
196
|
-
lists/item/idC/nestIDC1
|
331
|
+
lists(x)/item/idC/nestIDC1
|
197
332
|
```
|
198
333
|
のような形で情報を得ることはできます。
|
199
334
|
|
200
|
-
しかし、noの項目はこちらで必要に応じて選択する必要があります。
|
335
|
+
しかし、no(x)の項目はこちらで必要に応じて選択する必要があります。
|
201
336
|
そのため、取得したいnoが含まれている
|
202
337
|
```
|
203
338
|
lists[x]
|
204
339
|
```
|
205
|
-
|
340
|
+
などは、状況に応じて取得する工程は必要になります。
|
341
|
+
|
342
|
+
#### 追記2
|
343
|
+
参考例を追加いたしました。
|
344
|
+
追加内容としましては、同一階層にあるものが1階層目にしかなく誤解がありそうでしたので参考配列を変更し、例を追加いたしました。
|
2
title
CHANGED
File without changes
|
body
CHANGED
@@ -197,4 +197,9 @@
|
|
197
197
|
```
|
198
198
|
のような形で情報を得ることはできます。
|
199
199
|
|
200
|
-
しかし、noの項目はこちらで必要に応じて選択する必要があります。
|
200
|
+
しかし、noの項目はこちらで必要に応じて選択する必要があります。
|
201
|
+
そのため、取得したいnoが含まれている
|
202
|
+
```
|
203
|
+
lists[x]
|
204
|
+
```
|
205
|
+
を取得する工程は必要になります。
|
1
title
CHANGED
File without changes
|
body
CHANGED
@@ -151,4 +151,50 @@
|
|
151
151
|
```
|
152
152
|
というもので、これは崩れません。
|
153
153
|
|
154
|
-
技術不足ですいませんが、何卒よろしくお願い致します。
|
154
|
+
技術不足ですいませんが、何卒よろしくお願い致します。
|
155
|
+
|
156
|
+
#### 追加
|
157
|
+
ご質問にありましたルールについて追記いたします。
|
158
|
+
基本的には、
|
159
|
+
```
|
160
|
+
{
|
161
|
+
id: xxxx,
|
162
|
+
value: yyyy,
|
163
|
+
}
|
164
|
+
```
|
165
|
+
が絶対の形となっており、これが1つのまとまりとなります。
|
166
|
+
これが、同じ階層に並ぶ場合には
|
167
|
+
```
|
168
|
+
{
|
169
|
+
id: xxxx,
|
170
|
+
value: yyyy,
|
171
|
+
},
|
172
|
+
{
|
173
|
+
id: aaaaa,
|
174
|
+
value: bbbb,
|
175
|
+
}
|
176
|
+
```
|
177
|
+
と同階層に連なります。
|
178
|
+
|
179
|
+
ネストされる場合には必ず
|
180
|
+
```
|
181
|
+
{
|
182
|
+
id: xxxx,
|
183
|
+
value: [
|
184
|
+
{
|
185
|
+
id: aaaaa,
|
186
|
+
value: bbbbb,
|
187
|
+
},
|
188
|
+
]
|
189
|
+
}
|
190
|
+
```
|
191
|
+
のように、親のvalueの中に配列ができその中に同じ形のオブジェクトができます。
|
192
|
+
|
193
|
+
取得したい要素のidは、
|
194
|
+
|
195
|
+
```
|
196
|
+
lists/item/idC/nestIDC1
|
197
|
+
```
|
198
|
+
のような形で情報を得ることはできます。
|
199
|
+
|
200
|
+
しかし、noの項目はこちらで必要に応じて選択する必要があります。
|