質問編集履歴

3

追記

2021/04/18 14:50

投稿

kwansai724
kwansai724

スコア2

test CHANGED
File without changes
test CHANGED
@@ -374,7 +374,11 @@
374
374
 
375
375
 
376
376
 
377
- 抽出できた結果の中から、resultの内容を取得できればと思うのですがその方法が現状分からない状況です。
377
+ 抽出できた結果の中から、resultの内容を取得できればと思
378
+
379
+ var r = $("filtered").val("result");
380
+
381
+ という書き方をしましたが、取得ができていないのが現状です。
378
382
 
379
383
  オブジェクトの中の特定の要素のみを取り出す方法が分かればと思うのですが、どなたかアドバイス頂けたらと思います。
380
384
 

2

追記日の追加

2021/04/18 14:50

投稿

kwansai724
kwansai724

スコア2

test CHANGED
File without changes
test CHANGED
@@ -258,7 +258,7 @@
258
258
 
259
259
 
260
260
 
261
- ### 追記
261
+ ### 追記(2021/04/18)
262
262
 
263
263
  下記の様に、コードを修正しました。
264
264
 

1

追記

2021/04/18 14:42

投稿

kwansai724
kwansai724

スコア2

test CHANGED
File without changes
test CHANGED
@@ -255,3 +255,127 @@
255
255
  rails (5.2.4.5)
256
256
 
257
257
  jquery-rails (4.4.0)
258
+
259
+
260
+
261
+ ### 追記
262
+
263
+ 下記の様に、コードを修正しました。
264
+
265
+
266
+
267
+ ```jquery
268
+
269
+
270
+
271
+ $(function(){
272
+
273
+ //一度結果を非表示にする
274
+
275
+ $(".result, .results").hide();
276
+
277
+ //ボタンがクリックされた時
278
+
279
+ $("button").on("click", function(){
280
+
281
+ //一度結果を非表示にする
282
+
283
+ $(".result, .results").hide();
284
+
285
+ //問題数を取得
286
+
287
+ var qNum = $("ul.questions li").length;
288
+
289
+ if( $("ul.questions li input:checked").length < qNum ){
290
+
291
+ //全てチェックしていなかったらアラートを出す
292
+
293
+ alert("未回答の質問があります");
294
+
295
+ }
296
+
297
+ else {
298
+
299
+ //チェックされているinputの数を取得
300
+
301
+ var typeANum = $(".左上:checked").length,
302
+
303
+ typeBNum = $(".右上:checked").length,
304
+
305
+ typeCNum = $(".左側:checked").length,
306
+
307
+ typeDNum = $(".右側:checked").length,
308
+
309
+ typeENum = $(".左下:checked").length,
310
+
311
+ typeFNum = $(".右下:checked").length,
312
+
313
+ typeGNum = $(".輻輳開散:checked").length;
314
+
315
+ var a = [typeANum, typeBNum, typeCNum, typeDNum, typeENum, typeFNum, typeGNum];
316
+
317
+ var max = Math.max.apply(null, a);
318
+
319
+ var eyes = [
320
+
321
+ { type: "A", Num: typeANum, result: ".左上(結果)" },
322
+
323
+ { type: "B", Num: typeBNum, result: ".右上(結果)" },
324
+
325
+ { type: "C", Num: typeCNum, result: ".左側(結果)" },
326
+
327
+ { type: "D", Num: typeDNum, result: ".右側(結果)" },
328
+
329
+ { type: "E", Num: typeENum, result: ".左下(結果)" },
330
+
331
+ { type: "F", Num: typeFNum, result: ".右下(結果)" },
332
+
333
+ { type: "G", Num: typeGNum, result: ".輻輳開散(結果)" },
334
+
335
+ ];
336
+
337
+
338
+
339
+ var filtered = $.grep(eyes,
340
+
341
+ function(element, index) {
342
+
343
+
344
+
345
+ return (element.Num >= max);
346
+
347
+ }
348
+
349
+ );
350
+
351
+
352
+
353
+ console.log(filtered);
354
+
355
+ var r = $("filtered").val("result");
356
+
357
+ $("r,.results").fadeIn();
358
+
359
+ }
360
+
361
+ });
362
+
363
+ });
364
+
365
+ ```
366
+
367
+ 最大値を取得し、オブジェクトも作成してtypeとresultが紐づくようにしました。
368
+
369
+ そして最大値とオブジェクトのNumが同数のものを抽出するようにして、YESが一番多いオブジェクトの抽出までは出来ました。(写真はtypeAのYESが一番多かった時のconsole.log(filtered);の結果です)
370
+
371
+
372
+
373
+ ![イメージ説明](b9ab8640fd1208a695dc76451e6beb2a.png)
374
+
375
+
376
+
377
+ 抽出できた結果の中から、resultの内容を取得できればと思うのですが、その方法が現状分からない状況です。
378
+
379
+ オブジェクトの中の特定の要素のみを取り出す方法が分かればと思うのですが、どなたかアドバイス頂けたらと思います。
380
+
381
+ よろしくお願いいたします。