質問編集履歴

8

説明の補足と、分かりにくい部分の修正を行いました。

2022/01/05 14:09

投稿

nutti
nutti

スコア7

test CHANGED
File without changes
test CHANGED
@@ -524,8 +524,6 @@
524
524
 
525
525
  setArray(oldArray);
526
526
 
527
-
528
-
529
527
  ```
530
528
 
531
529
 
@@ -538,7 +536,17 @@
538
536
 
539
537
  `idC`や`nestID`など階層が深いものもあり、その都度バラバラなので違うケースのときにうまく対応できずそれぞれのケースを用意しているのが現状です。
540
538
 
539
+
540
+
541
+ 技術不足ですいませんが、何卒よろしくお願い致します。
542
+
543
+
544
+
545
+ #### 追加1
546
+
547
+ ご質問にありましたルールについて追記いたします。
548
+
541
- 決まっているのは、
549
+ 基本的には、
542
550
 
543
551
  ```
544
552
 
@@ -552,17 +560,9 @@
552
560
 
553
561
  ```
554
562
 
555
- というもので、このセットだけは崩れません。
556
-
557
- 技術不足ですいませんが、何卒よろしくお願い致します。
563
+ 絶対の形となっておりこれが1つのとまりとなります。
558
-
559
-
560
-
561
- #### 追加1
564
+
562
-
563
- ご質問ありましたルールついて追記いたします。
565
+ これが、同じ階層並ぶ場合
564
-
565
- 基本的には、
566
566
 
567
567
  ```
568
568
 
@@ -572,55 +572,83 @@
572
572
 
573
573
  value: yyyy,
574
574
 
575
- }
575
+ },
576
-
577
- ```
578
-
579
- が絶対の形となっており、これが1つのまとまりとなります。
580
-
581
- これが、同じ階層に並ぶ場合には
582
-
583
- ```
584
576
 
585
577
  {
586
578
 
579
+ id: aaaaa,
580
+
581
+ value: bbbb,
582
+
583
+ }
584
+
585
+ ```
586
+
587
+ と同階層に連なります。
588
+
589
+
590
+
591
+ ネストされる場合には必ず
592
+
593
+ ```
594
+
595
+ {
596
+
587
597
  id: xxxx,
588
598
 
599
+ value: [
600
+
601
+ {
602
+
603
+ id: aaaaa,
604
+
589
- value: yyyy,
605
+ value: bbbbb,
590
-
606
+
591
- },
607
+ },
608
+
609
+ ]
610
+
611
+ }
612
+
613
+ ```
614
+
615
+ のように、親のvalueの中に新たな要素ができます。
616
+
617
+ valueは配列を持つことができ、繰り返しネストすることができます。
618
+
619
+ ```
592
620
 
593
621
  {
594
622
 
595
- id: aaaaa,
596
-
597
- value: bbbb,
598
-
599
- }
600
-
601
- ```
602
-
603
- と同階層に連なります。
604
-
605
-
606
-
607
- ネストされる場合には必ず
608
-
609
- ```
610
-
611
- {
612
-
613
623
  id: xxxx,
614
624
 
615
625
  value: [
616
626
 
627
+ [
628
+
617
- {
629
+ {
618
-
630
+
619
- id: aaaaa,
631
+ id: aaaaa,
620
-
632
+
621
- value: bbbbb,
633
+ value: bbbbb,
622
-
634
+
623
- },
635
+ },
636
+
637
+ {
638
+
639
+ id: ccc,
640
+
641
+ value: ddd,
642
+
643
+ },
644
+
645
+ ],
646
+
647
+ [
648
+
649
+ ....同様
650
+
651
+ ]
624
652
 
625
653
  ]
626
654
 
@@ -628,9 +656,9 @@
628
656
 
629
657
  ```
630
658
 
631
- のように、親のvalueの中に配列ができその中に同じ形のオブジェクトができます。
632
-
633
- valueは配列を持つこができ、繰り返しネストことができます。
659
+ と繰り返すことができます。
660
+
661
+
634
662
 
635
663
  取得したい要素のidは、
636
664
 

7

一部valueについての補足を行いました

2022/01/05 14:09

投稿

nutti
nutti

スコア7

test CHANGED
File without changes
test CHANGED
@@ -630,17 +630,15 @@
630
630
 
631
631
  のように、親のvalueの中に配列ができその中に同じ形のオブジェクトができます。
632
632
 
633
+ valueは配列を持つことができ、繰り返しネストすることができます。
634
+
633
635
  取得したい要素のidは、
634
636
 
635
637
  ```
636
638
 
637
639
  lists(x)/item/idC/nestIDC1
638
640
 
639
- ```
641
+
640
-
641
- となり、xは、
642
-
643
- ```
644
642
 
645
643
  x = {
646
644
 
@@ -654,7 +652,7 @@
654
652
 
655
653
  のような形で情報を得ることはできます。
656
654
 
657
- そのため、取得したいnoが含まれている
655
+ そのため、取得したいxが含まれている
658
656
 
659
657
  ```
660
658
 

6

一部文字数制限のため形式省略いたしました。

2022/01/05 14:03

投稿

nutti
nutti

スコア7

test CHANGED
File without changes
test CHANGED
@@ -44,7 +44,7 @@
44
44
 
45
45
  id: "idA",
46
46
 
47
- value: "valueA",
47
+ value: "val A",
48
48
 
49
49
  },
50
50
 
@@ -52,9 +52,41 @@
52
52
 
53
53
  id: "idB",
54
54
 
55
+ value: "val B",
56
+
57
+ },
58
+
59
+ {
60
+
61
+ id: "idC",
62
+
55
63
  value: [
56
64
 
65
+ {
66
+
67
+ id: "nestID_C1",
68
+
69
+ value: "val C1",
70
+
71
+ },
72
+
73
+ {
74
+
75
+ id: "nestID_C2",
76
+
57
- 1, 2, 3
77
+ value: [
78
+
79
+ {
80
+
81
+ id: "nestID_C2-1",
82
+
83
+ value: "val nest c2-1"
84
+
85
+ }
86
+
87
+ ],
88
+
89
+ },
58
90
 
59
91
  ],
60
92
 
@@ -62,6 +94,112 @@
62
94
 
63
95
  {
64
96
 
97
+ id: "idD",
98
+
99
+ value: [
100
+
101
+ {
102
+
103
+ id: "nestID_D1",
104
+
105
+ value: "nest d-1",
106
+
107
+ },
108
+
109
+ {
110
+
111
+ id: "nestID_D2",
112
+
113
+ value: [
114
+
115
+ [
116
+
117
+ {
118
+
119
+ id: "nestID_D2-NO",
120
+
121
+ value: "300"
122
+
123
+ },
124
+
125
+ {
126
+
127
+ id: "nestID_D2-1",
128
+
129
+ value: "value nested d2 no-300 - 1"
130
+
131
+ }
132
+
133
+ ],
134
+
135
+ [
136
+
137
+ {
138
+
139
+ id: "nestID_D2-NO",
140
+
141
+ value: "400"
142
+
143
+ },
144
+
145
+ {
146
+
147
+ id: "nestID_D2-1",
148
+
149
+ value: "value nested d2 no-400 - 1"
150
+
151
+ }
152
+
153
+ ],
154
+
155
+ ],
156
+
157
+ },
158
+
159
+ ],
160
+
161
+ },
162
+
163
+ ]
164
+
165
+ }
166
+
167
+ ],
168
+
169
+ [
170
+
171
+ {
172
+
173
+ id: "no",
174
+
175
+ value: 200,
176
+
177
+ },
178
+
179
+ {
180
+
181
+ id: "item",
182
+
183
+ value: [
184
+
185
+ {
186
+
187
+ id: "idA",
188
+
189
+ value: "val A",
190
+
191
+ },
192
+
193
+ {
194
+
195
+ id: "idB",
196
+
197
+ value: "val B,
198
+
199
+ },
200
+
201
+ {
202
+
65
203
  id: "idC",
66
204
 
67
205
  value: [
@@ -70,7 +208,7 @@
70
208
 
71
209
  id: "nestID_C1",
72
210
 
73
- value: "value nested c1",
211
+ value: "val nest c1",
74
212
 
75
213
  },
76
214
 
@@ -84,7 +222,7 @@
84
222
 
85
223
  id: "nestID_C2-1",
86
224
 
87
- value: "value nested c2 - 1"
225
+ value: "val nested c2-1"
88
226
 
89
227
  }
90
228
 
@@ -106,7 +244,7 @@
106
244
 
107
245
  id: "nestID_D1",
108
246
 
109
- value: "nest idD d-1,
247
+ value: "nest d-1,
110
248
 
111
249
  },
112
250
 
@@ -170,152 +308,6 @@
170
308
 
171
309
  ],
172
310
 
173
- [
174
-
175
- {
176
-
177
- id: "no",
178
-
179
- value: 200,
180
-
181
- },
182
-
183
- {
184
-
185
- id: "item",
186
-
187
- value: [
188
-
189
- {
190
-
191
- id: "idA",
192
-
193
- value: "valueA",
194
-
195
- },
196
-
197
- {
198
-
199
- id: "idB",
200
-
201
- value: [
202
-
203
- 1, 2, 3
204
-
205
- ],
206
-
207
- },
208
-
209
- {
210
-
211
- id: "idC",
212
-
213
- value: [
214
-
215
- {
216
-
217
- id: "nestID_C1",
218
-
219
- value: "value nested c1",
220
-
221
- },
222
-
223
- {
224
-
225
- id: "nestID_C2",
226
-
227
- value: [
228
-
229
- {
230
-
231
- id: "nestID_C2-1",
232
-
233
- value: "value nested c2 - 1"
234
-
235
- }
236
-
237
- ],
238
-
239
- },
240
-
241
- ],
242
-
243
- },
244
-
245
- {
246
-
247
- id: "idD",
248
-
249
- value: [
250
-
251
- {
252
-
253
- id: "nestID_D1",
254
-
255
- value: "nest idD d-1,
256
-
257
- },
258
-
259
- {
260
-
261
- id: "nestID_D2",
262
-
263
- value: [
264
-
265
- [
266
-
267
- {
268
-
269
- id: "nestID_D2-NO",
270
-
271
- value: "300"
272
-
273
- },
274
-
275
- {
276
-
277
- id: "nestID_D2-1",
278
-
279
- value: "value nested d2 no-300 - 1"
280
-
281
- }
282
-
283
- ],
284
-
285
- [
286
-
287
- {
288
-
289
- id: "nestID_D2-NO",
290
-
291
- value: "400"
292
-
293
- },
294
-
295
- {
296
-
297
- id: "nestID_D2-1",
298
-
299
- value: "value nested d2 no-400 - 1"
300
-
301
- }
302
-
303
- ],
304
-
305
- ],
306
-
307
- },
308
-
309
- ],
310
-
311
- },
312
-
313
- ]
314
-
315
- }
316
-
317
- ],
318
-
319
311
  ]
320
312
 
321
313
  }

5

選択要素Xについて、ミスと記載もれがありましたので追記致しました。文字数制限になり一部を省略致しました。

2022/01/05 13:59

投稿

nutti
nutti

スコア7

test CHANGED
File without changes
test CHANGED
@@ -106,14 +106,156 @@
106
106
 
107
107
  id: "nestID_D1",
108
108
 
109
+ value: "nest idD d-1,
110
+
111
+ },
112
+
113
+ {
114
+
115
+ id: "nestID_D2",
116
+
109
117
  value: [
110
118
 
111
-
119
+ [
120
+
121
+ {
122
+
123
+ id: "nestID_D2-NO",
124
+
125
+ value: "300"
126
+
127
+ },
128
+
129
+ {
130
+
131
+ id: "nestID_D2-1",
132
+
133
+ value: "value nested d2 no-300 - 1"
134
+
135
+ }
136
+
137
+ ],
138
+
139
+ [
140
+
141
+ {
142
+
143
+ id: "nestID_D2-NO",
144
+
145
+ value: "400"
146
+
147
+ },
148
+
149
+ {
150
+
151
+ id: "nestID_D2-1",
152
+
153
+ value: "value nested d2 no-400 - 1"
154
+
155
+ }
156
+
157
+ ],
112
158
 
113
159
  ],
114
160
 
115
161
  },
116
162
 
163
+ ],
164
+
165
+ },
166
+
167
+ ]
168
+
169
+ }
170
+
171
+ ],
172
+
173
+ [
174
+
175
+ {
176
+
177
+ id: "no",
178
+
179
+ value: 200,
180
+
181
+ },
182
+
183
+ {
184
+
185
+ id: "item",
186
+
187
+ value: [
188
+
189
+ {
190
+
191
+ id: "idA",
192
+
193
+ value: "valueA",
194
+
195
+ },
196
+
197
+ {
198
+
199
+ id: "idB",
200
+
201
+ value: [
202
+
203
+ 1, 2, 3
204
+
205
+ ],
206
+
207
+ },
208
+
209
+ {
210
+
211
+ id: "idC",
212
+
213
+ value: [
214
+
215
+ {
216
+
217
+ id: "nestID_C1",
218
+
219
+ value: "value nested c1",
220
+
221
+ },
222
+
223
+ {
224
+
225
+ id: "nestID_C2",
226
+
227
+ value: [
228
+
229
+ {
230
+
231
+ id: "nestID_C2-1",
232
+
233
+ value: "value nested c2 - 1"
234
+
235
+ }
236
+
237
+ ],
238
+
239
+ },
240
+
241
+ ],
242
+
243
+ },
244
+
245
+ {
246
+
247
+ id: "idD",
248
+
249
+ value: [
250
+
251
+ {
252
+
253
+ id: "nestID_D1",
254
+
255
+ value: "nest idD d-1,
256
+
257
+ },
258
+
117
259
  {
118
260
 
119
261
  id: "nestID_D2",
@@ -174,156 +316,6 @@
174
316
 
175
317
  ],
176
318
 
177
- [
178
-
179
- {
180
-
181
- id: "no",
182
-
183
- value: 200,
184
-
185
- },
186
-
187
- {
188
-
189
- id: "item",
190
-
191
- value: [
192
-
193
- {
194
-
195
- id: "idA",
196
-
197
- value: "valueA",
198
-
199
- },
200
-
201
- {
202
-
203
- id: "idB",
204
-
205
- value: [
206
-
207
- 1, 2, 3
208
-
209
- ],
210
-
211
- },
212
-
213
- {
214
-
215
- id: "idC",
216
-
217
- value: [
218
-
219
- {
220
-
221
- id: "nestID_C1",
222
-
223
- value: "value nested c1",
224
-
225
- },
226
-
227
- {
228
-
229
- id: "nestID_C2",
230
-
231
- value: [
232
-
233
- {
234
-
235
- id: "nestID_C2-1",
236
-
237
- value: "value nested c2 - 1"
238
-
239
- }
240
-
241
- ],
242
-
243
- },
244
-
245
- ],
246
-
247
- },
248
-
249
- {
250
-
251
- id: "idD",
252
-
253
- value: [
254
-
255
- {
256
-
257
- id: "nestID_D1",
258
-
259
- value: [
260
-
261
-
262
-
263
- ],
264
-
265
- },
266
-
267
- {
268
-
269
- id: "nestID_D2",
270
-
271
- value: [
272
-
273
- [
274
-
275
- {
276
-
277
- id: "nestID_D2-NO",
278
-
279
- value: "300"
280
-
281
- },
282
-
283
- {
284
-
285
- id: "nestID_D2-1",
286
-
287
- value: "value nested d2 no-300 - 1"
288
-
289
- }
290
-
291
- ],
292
-
293
- [
294
-
295
- {
296
-
297
- id: "nestID_D2-NO",
298
-
299
- value: "400"
300
-
301
- },
302
-
303
- {
304
-
305
- id: "nestID_D2-1",
306
-
307
- value: "value nested d2 no-400 - 1"
308
-
309
- }
310
-
311
- ],
312
-
313
- ],
314
-
315
- },
316
-
317
- ],
318
-
319
- },
320
-
321
- ]
322
-
323
- }
324
-
325
- ],
326
-
327
319
  ]
328
320
 
329
321
  }
@@ -342,9 +334,7 @@
342
334
 
343
335
  ```
344
336
 
345
- // noのvalueが200のものを上書きしたい
346
-
347
- // lists(200)/item/idC/nestIDC2/nestIDC2_1
337
+ // lists({id:"no", value: 200})/item/idC/nestID_C2/nestID_C2-1
348
338
 
349
339
  // lists直下のNOは、状況に合わせてこちらで選択する。
350
340
 
@@ -430,7 +420,7 @@
430
420
 
431
421
  // no100の中にある、valueが400のnestID_D2-1を上書きしたい
432
422
 
433
- // lists(100)/item/idD/nestID_D2(400)/nestID_D2-1
423
+ // lists({id:"no", value: 100})/item/idD/nestID_D2({id:"nestID_D2-NO", value: 400})/nestID_D2-1
434
424
 
435
425
  // lists直下のNOと、nestID_D2下のNOは、状況に合わせてこちらで選択する。
436
426
 
@@ -554,7 +544,7 @@
554
544
 
555
545
  上の例ですと、
556
546
 
557
- `idC`や`nestID`など階層が深いものもあり、その都度バラバラなので違うケースのときにうまく対応できずそれぞれのケースを用意しているのが現状です。。。
547
+ `idC`や`nestID`など階層が深いものもあり、その都度バラバラなので違うケースのときにうまく対応できずそれぞれのケースを用意しているのが現状です。
558
548
 
559
549
  決まっているのは、
560
550
 
@@ -572,8 +562,6 @@
572
562
 
573
563
  というもので、このセットだけは崩れません。
574
564
 
575
-
576
-
577
565
  技術不足ですいませんが、何卒よろしくお願い致します。
578
566
 
579
567
 
@@ -650,29 +638,35 @@
650
638
 
651
639
  のように、親のvalueの中に配列ができその中に同じ形のオブジェクトができます。
652
640
 
653
-
654
-
655
641
  取得したい要素のidは、
656
642
 
657
-
658
-
659
643
  ```
660
644
 
661
645
  lists(x)/item/idC/nestIDC1
662
646
 
663
647
  ```
664
648
 
649
+ となり、xは、
650
+
651
+ ```
652
+
653
+ x = {
654
+
655
+ id: target_name,
656
+
657
+ value: target_value
658
+
659
+ }
660
+
661
+ ```
662
+
665
663
  のような形で情報を得ることはできます。
666
664
 
667
-
668
-
669
- しかし、no(x)の項目はこちらで必要に応じて選択する必要があります。
670
-
671
665
  そのため、取得したいnoが含まれている
672
666
 
673
667
  ```
674
668
 
675
- lists[x]
669
+ listsの直下のidがx.id, valueがx.valueのが含まれる要素
676
670
 
677
671
  ```
678
672
 
@@ -685,3 +679,9 @@
685
679
  参考例を追加いたしました。
686
680
 
687
681
  追加内容としましては、同一階層にあるものが1階層目にしかなく誤解がありそうでしたので参考配列を変更し、例を追加いたしました。
682
+
683
+
684
+
685
+ #### 追記3
686
+
687
+ 選択要素のxの仕様にもれがあったので、追記いたしました。

4

表記にミスがありましたので、修正いたしました。

2022/01/05 13:56

投稿

nutti
nutti

スコア7

test CHANGED
File without changes
test CHANGED
@@ -68,7 +68,7 @@
68
68
 
69
69
  {
70
70
 
71
- id: "nestIDC1",
71
+ id: "nestID_C1",
72
72
 
73
73
  value: "value nested c1",
74
74
 
@@ -76,13 +76,13 @@
76
76
 
77
77
  {
78
78
 
79
- id: "nestIDC2",
79
+ id: "nestID_C2",
80
80
 
81
81
  value: [
82
82
 
83
83
  {
84
84
 
85
- id: "nestIDC2-1",
85
+ id: "nestID_C2-1",
86
86
 
87
87
  value: "value nested c2 - 1"
88
88
 

3

例を追加しました。また分かりにくい文書を変更しました。

2022/01/05 13:34

投稿

nutti
nutti

スコア7

test CHANGED
File without changes
test CHANGED
@@ -96,6 +96,78 @@
96
96
 
97
97
  },
98
98
 
99
+ {
100
+
101
+ id: "idD",
102
+
103
+ value: [
104
+
105
+ {
106
+
107
+ id: "nestID_D1",
108
+
109
+ value: [
110
+
111
+
112
+
113
+ ],
114
+
115
+ },
116
+
117
+ {
118
+
119
+ id: "nestID_D2",
120
+
121
+ value: [
122
+
123
+ [
124
+
125
+ {
126
+
127
+ id: "nestID_D2-NO",
128
+
129
+ value: "300"
130
+
131
+ },
132
+
133
+ {
134
+
135
+ id: "nestID_D2-1",
136
+
137
+ value: "value nested d2 no-300 - 1"
138
+
139
+ }
140
+
141
+ ],
142
+
143
+ [
144
+
145
+ {
146
+
147
+ id: "nestID_D2-NO",
148
+
149
+ value: "400"
150
+
151
+ },
152
+
153
+ {
154
+
155
+ id: "nestID_D2-1",
156
+
157
+ value: "value nested d2 no-400 - 1"
158
+
159
+ }
160
+
161
+ ],
162
+
163
+ ],
164
+
165
+ },
166
+
167
+ ],
168
+
169
+ },
170
+
99
171
  ]
100
172
 
101
173
  }
@@ -146,7 +218,7 @@
146
218
 
147
219
  {
148
220
 
149
- id: "nestIDC1",
221
+ id: "nestID_C1",
150
222
 
151
223
  value: "value nested c1",
152
224
 
@@ -154,13 +226,13 @@
154
226
 
155
227
  {
156
228
 
157
- id: "nestIDC2",
229
+ id: "nestID_C2",
158
230
 
159
231
  value: [
160
232
 
161
233
  {
162
234
 
163
- id: "nestIDC2-1",
235
+ id: "nestID_C2-1",
164
236
 
165
237
  value: "value nested c2 - 1"
166
238
 
@@ -174,6 +246,78 @@
174
246
 
175
247
  },
176
248
 
249
+ {
250
+
251
+ id: "idD",
252
+
253
+ value: [
254
+
255
+ {
256
+
257
+ id: "nestID_D1",
258
+
259
+ value: [
260
+
261
+
262
+
263
+ ],
264
+
265
+ },
266
+
267
+ {
268
+
269
+ id: "nestID_D2",
270
+
271
+ value: [
272
+
273
+ [
274
+
275
+ {
276
+
277
+ id: "nestID_D2-NO",
278
+
279
+ value: "300"
280
+
281
+ },
282
+
283
+ {
284
+
285
+ id: "nestID_D2-1",
286
+
287
+ value: "value nested d2 no-300 - 1"
288
+
289
+ }
290
+
291
+ ],
292
+
293
+ [
294
+
295
+ {
296
+
297
+ id: "nestID_D2-NO",
298
+
299
+ value: "400"
300
+
301
+ },
302
+
303
+ {
304
+
305
+ id: "nestID_D2-1",
306
+
307
+ value: "value nested d2 no-400 - 1"
308
+
309
+ }
310
+
311
+ ],
312
+
313
+ ],
314
+
315
+ },
316
+
317
+ ],
318
+
319
+ },
320
+
177
321
  ]
178
322
 
179
323
  }
@@ -184,7 +328,7 @@
184
328
 
185
329
  }
186
330
 
187
- ]
331
+ ];
188
332
 
189
333
  ```
190
334
 
@@ -198,15 +342,19 @@
198
342
 
199
343
  ```
200
344
 
201
-
202
-
203
- // noのvalueが200のものの、itemの中身を上書きしたい
345
+ // noのvalueが200のものを上書きしたい
346
+
347
+ // lists(200)/item/idC/nestIDC2/nestIDC2_1
348
+
349
+ // lists直下のNOは、状況に合わせてこちらで選択する。
350
+
351
+ // 上で記載した通り、今回は、lists下は200を取得する
204
352
 
205
353
  var oldArray = getArray(); // arrayの配列を取得
206
354
 
207
- var lists = oldArray.find(el => el.id == "lists"); //listsの取得
355
+ var lists = oldArray.find(el => el.id == "lists");
208
-
356
+
209
- var itemIndex = -1; // noが一致する配列のindex
357
+ var itemIndex = -1;
210
358
 
211
359
  var targetNo = 200;
212
360
 
@@ -216,8 +364,6 @@
216
364
 
217
365
  for (let i=0; i<lists.value.length; i++) {
218
366
 
219
- // noの要素を検索
220
-
221
367
  const _item = lists.value[i].find(el => el.id == "no");
222
368
 
223
369
  if (_item.value == targetNo) {
@@ -242,7 +388,7 @@
242
388
 
243
389
 
244
390
 
245
- // no 200が含まれている配列を取得
391
+ // no 200配列を取得
246
392
 
247
393
  var list = lists.value[itemIndex];
248
394
 
@@ -254,13 +400,13 @@
254
400
 
255
401
 
256
402
 
257
- // itemのvalueの中から、変更したいものを取り出す => 例:nestIDC2 -> nestIDC2-1のvalueを書き換える
403
+ // itemのvalueの中から、変更したいものを取り出す => 例:nestID_C2 -> nestID_C2-1のvalueを書き換える
258
404
 
259
405
  var idC = item.value.find(el => el.id == "idC");
260
406
 
261
- var nestIDC2 = idC.value.find(el => el.id == "nestIDC2");
407
+ var nestIDC2 = idC.value.find(el => el.id == "nestID_C2");
262
-
408
+
263
- var nestIDC2_1 = nestIDC2.value.find(el => el.id == "nestIDC2-1");
409
+ var nestIDC2_1 = nestIDC2.value.find(el => el.id == "nestID_C2-1");
264
410
 
265
411
 
266
412
 
@@ -278,6 +424,130 @@
278
424
 
279
425
 
280
426
 
427
+ ```
428
+
429
+
430
+
431
+ // no100の中にある、valueが400のnestID_D2-1を上書きしたい
432
+
433
+ // lists(100)/item/idD/nestID_D2(400)/nestID_D2-1
434
+
435
+ // lists直下のNOと、nestID_D2下のNOは、状況に合わせてこちらで選択する。
436
+
437
+ // 上で記載した通り、今回は、lists下は100, nestID_D2下は400を取得する
438
+
439
+ var oldArray = getArray(); // arrayの配列を取得
440
+
441
+ var lists = oldArray.find(el => el.id == "lists");
442
+
443
+ var itemIndex = -1;
444
+
445
+ var targetNo = 100;
446
+
447
+
448
+
449
+ // lists直下のno100を探す
450
+
451
+ for (let i=0; i<lists.value.length; i++) {
452
+
453
+ const _item = lists.value[i].find(el => el.id == "no");
454
+
455
+ if (_item.value == targetNo) {
456
+
457
+ itemIndex = i;
458
+
459
+ break;
460
+
461
+ }
462
+
463
+ }
464
+
465
+
466
+
467
+ // 存在しないときは終了
468
+
469
+ if (itemIndex == -1) {
470
+
471
+ return;
472
+
473
+ }
474
+
475
+
476
+
477
+ // no 100の配列を取得
478
+
479
+ var list = lists.value[itemIndex];
480
+
481
+
482
+
483
+ // itemを取得
484
+
485
+ var item = list.find(el => el.id == "item");
486
+
487
+
488
+
489
+ // itemのvalueの中から、変更したいものを取り出す
490
+
491
+ var idD = item.value.find(el => el.id == "idD");
492
+
493
+ var nestIDC2 = idD.value.find(el => el.id == "nestID_D2");
494
+
495
+
496
+
497
+ // no400を探す
498
+
499
+ var nestedTargetID = 400;
500
+
501
+ var nestedItemIndex = -1;
502
+
503
+
504
+
505
+ for (let i=0; i<nestIDC2.value.length; i++) {
506
+
507
+ const _item = nestIDC2.value[i].find(el => el.id == "nestID_D2-NO");
508
+
509
+ if (_item.value == nestedTargetID) {
510
+
511
+ nestedItemIndex = i;
512
+
513
+ break;
514
+
515
+ }
516
+
517
+ }
518
+
519
+
520
+
521
+ // 存在しないときは終了
522
+
523
+ if (nestedItemIndex == -1) {
524
+
525
+ return;
526
+
527
+ }
528
+
529
+
530
+
531
+ var nestID_D2_1 = nestIDC2.value.find(el => el.id == "nestID_D2-1");
532
+
533
+
534
+
535
+ // 書き換え
536
+
537
+ nestID_D2_1.value = "new value";
538
+
539
+
540
+
541
+ // arrayの上書き処理
542
+
543
+ setArray(oldArray);
544
+
545
+
546
+
547
+ ```
548
+
549
+
550
+
281
551
  `getArray`や`setArray`の先はAPIになっており、そのまま`array`を取得・上書きしてくれます。
282
552
 
283
553
 
@@ -300,7 +570,7 @@
300
570
 
301
571
  ```
302
572
 
303
- というもので、こは崩れません。
573
+ というもので、このセットだけは崩れません。
304
574
 
305
575
 
306
576
 
@@ -308,7 +578,7 @@
308
578
 
309
579
 
310
580
 
311
- #### 追加
581
+ #### 追加1
312
582
 
313
583
  ご質問にありましたルールについて追記いたします。
314
584
 
@@ -388,7 +658,7 @@
388
658
 
389
659
  ```
390
660
 
391
- lists/item/idC/nestIDC1
661
+ lists(x)/item/idC/nestIDC1
392
662
 
393
663
  ```
394
664
 
@@ -396,7 +666,7 @@
396
666
 
397
667
 
398
668
 
399
- しかし、noの項目はこちらで必要に応じて選択する必要があります。
669
+ しかし、no(x)の項目はこちらで必要に応じて選択する必要があります。
400
670
 
401
671
  そのため、取得したいnoが含まれている
402
672
 
@@ -406,4 +676,12 @@
406
676
 
407
677
  ```
408
678
 
409
- 取得する工程は必要になります。
679
+ などは、状況に応じて取得する工程は必要になります。
680
+
681
+
682
+
683
+ #### 追記2
684
+
685
+ 参考例を追加いたしました。
686
+
687
+ 追加内容としましては、同一階層にあるものが1階層目にしかなく誤解がありそうでしたので参考配列を変更し、例を追加いたしました。

2

2022/01/05 13:32

投稿

nutti
nutti

スコア7

test CHANGED
File without changes
test CHANGED
@@ -397,3 +397,13 @@
397
397
 
398
398
 
399
399
  しかし、noの項目はこちらで必要に応じて選択する必要があります。
400
+
401
+ そのため、取得したいnoが含まれている
402
+
403
+ ```
404
+
405
+ lists[x]
406
+
407
+ ```
408
+
409
+ を取得する工程は必要になります。

1

2022/01/05 12:34

投稿

nutti
nutti

スコア7

test CHANGED
File without changes
test CHANGED
@@ -305,3 +305,95 @@
305
305
 
306
306
 
307
307
  技術不足ですいませんが、何卒よろしくお願い致します。
308
+
309
+
310
+
311
+ #### 追加
312
+
313
+ ご質問にありましたルールについて追記いたします。
314
+
315
+ 基本的には、
316
+
317
+ ```
318
+
319
+ {
320
+
321
+ id: xxxx,
322
+
323
+ value: yyyy,
324
+
325
+ }
326
+
327
+ ```
328
+
329
+ が絶対の形となっており、これが1つのまとまりとなります。
330
+
331
+ これが、同じ階層に並ぶ場合には
332
+
333
+ ```
334
+
335
+ {
336
+
337
+ id: xxxx,
338
+
339
+ value: yyyy,
340
+
341
+ },
342
+
343
+ {
344
+
345
+ id: aaaaa,
346
+
347
+ value: bbbb,
348
+
349
+ }
350
+
351
+ ```
352
+
353
+ と同階層に連なります。
354
+
355
+
356
+
357
+ ネストされる場合には必ず
358
+
359
+ ```
360
+
361
+ {
362
+
363
+ id: xxxx,
364
+
365
+ value: [
366
+
367
+ {
368
+
369
+ id: aaaaa,
370
+
371
+ value: bbbbb,
372
+
373
+ },
374
+
375
+ ]
376
+
377
+ }
378
+
379
+ ```
380
+
381
+ のように、親のvalueの中に配列ができその中に同じ形のオブジェクトができます。
382
+
383
+
384
+
385
+ 取得したい要素のidは、
386
+
387
+
388
+
389
+ ```
390
+
391
+ lists/item/idC/nestIDC1
392
+
393
+ ```
394
+
395
+ のような形で情報を得ることはできます。
396
+
397
+
398
+
399
+ しかし、noの項目はこちらで必要に応じて選択する必要があります。