javascript - jquery 数组相交

标签 javascript jquery arrays forms intersect

我之前将此问题发布为 jquery/javascript: arrays - jquery/javascript: arrays . 但是由于我是一个完全的初学者,所以我提出了错误的问题并且也不理解答案.... :(

在未能实现给定的解决方案后,我又环顾四周,发现我需要比较 6 个可能的选择数组并将它们相交以最终仅显示重叠的值。

因此,希望这是一个更清晰的表述:

我有 6 个问题/6 组单选按钮供回答。每个答案都有多个值(它们可以在 1 到 38 个项目的范围内显示在最终的“建议”中)。我正在收集数组中选中的 radio 的值。我得到 6 个数组。

我如何将 6 个数组相交以获得一个仅包含来自所有 6 个选择的相交值的最终数组? 我如何将这个最终数组的项目变成选择器?

有人可以帮帮我吗? 谢谢!

我的脚本现在看起来像:

(function($){
  $.fn.checkboxval = function(){
      var outArr = [];
      this.filter(':checked').each(function(){
            outArr.push(this.getAttribute("value"));
      });
      return outArr;
  };
})
(jQuery);
$(function(){
  $('#link').click(function(){
    var valArr1 = $('#vraag1 input:radio:checked').checkboxval();
    var valArr2 = $('#vraag2 input:radio:checked').checkboxval();
    var valArr3 = $('#vraag3 input:radio:checked').checkboxval();
    var valArr4 = $('#vraag4 input:radio:checked').checkboxval();
    var valArr5 = $('#vraag5 input:radio:checked').checkboxval();
    var valArr6 = $('#vraag6 input:radio:checked').checkboxval();
// var newArray = $.merge(valArr1, valArr2, valArr3, valArr4, valArr5, valArr6); <- test to see if I can merge them
// $('#output').text(newArray.join(',')); <- test to see if I can join them
//$("#output").html($("#output").html().replace(/,/gi, ',#diet')); <- test to see if I can append text so it looks like the selectors of divs I need to display later
//    return false;
  });
});

我的表单/输入看起来像:

<input name="vraag1" type="radio" value="1a,4,5,12,13,17a,18,19,22,23,24,26,27,28,29,30,33,38,6" class="radio advice" id="vraag1-0" /><label for="vraag1-0">ja</label>
<br />
<input name="vraag1" type="radio" value="1b,1,2,3,7,8,11,9,14,15,16,17,20,21,25,31,34,35,36,37,10,32" class="radio advice" id="vraag1-1" /><label for="vraag1-1">nee</label>
<br />
<input name="vraag1" type="radio" value="1c,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,17a,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38" class="radio advice" id="vraag1-2" /><label for="vraag1-2">maakt mij niet uit</label>

最佳答案

加载 jQuery 后,您可以进入控制台:

a1=[1,2,3]
a2=[2,3,4,5]
$.map(a1,function(a){return $.inArray(a, a2) < 0 ? null : a;})

输出应该是:

[2, 3]

关于javascript - jquery 数组相交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4003496/

相关文章:

javascript - slider - 在 HTML 视频中添加标题

javascript - 协助使用 JavaScript if 语句

javascript - 关于简单 Javascript/HTML 的问题

c# - 部分 View 刷新后保存数据的 jQuery 对话框

c# - 如何在前端检测回发(aspx)

javascript - 通过 xml-rpc 和 javascript 将文件上传到 WordPress

java - 将 2D 字节数组写入文本文件 Java

Javascript 如何在悬停到图像时显示消息

javascript - 我怎样才能只保留符合特定条件的数组项?

c - 将两个二维数组传递给函数进行比较