关键是我不是JS的专家,所以如果我的代码是一个很大的错误,实际上我只是通过围绕网络进行的研究来学习制作一个巨大的“科学怪人”的培训。创建一个变量与两个.map()寻找匹配或相交两个阵列。寻找匹配或交叉
我想采取两组或用户输入的值列表,并比较他们寻找与js和jquery匹配。
首先,我将两组输入(不同类别)的值与.map()一起取值,以得到创建数组的值。
var x = $(".row_a").map(function() {
return this.value;
}).get();
var y = $(".row_b").map(function() {
return this.value;
}).get();
然后我装盘创建包含两个arryas separatly(如果觉得我有这个问题可能),如果我“hardcode”阵列中的脚本的下一部分按预期工作一个变量,但如果我使用上面提到的前两个变量,脚本就会崩溃。
var arrays = [
[x],
[y]
];
第三部分(我真不明白深的这部分代码),我跑这两个arrys比较第二变量,然后用追加的结果的一段脚本。
var result = arrays.shift().reduce(function(res, v) {
if (res.indexOf(v) === -1 && arrays.every(function(a) {
return a.indexOf(v) !== -1;
})) res.push(v);
return res;
}, []);
$(".match").append("<div>Numbers " + result + " match in both lists</div>");
有人可以帮我undersnatd什么是错或giveme线索或链接,可以帮助?
好奇:如果我在包含数组变量使用same variable twice,该脚本工作,发现四场比赛(我认为是正确的becouse比较同一阵列)
-
编辑:
感谢@KarlReid和@Potorr。我不知道javascript中的交叉概念,所以现在我知道了一个更好的方法来实现结果。我会更详细地了解它,试着深入理解答案。
感谢@Alexandru让我知道sintax错误,从今以后它将是非常基础和有用的。
最终结果:DEMO
(我将修改后的丝毫不差,试图改善与他人在未来同样的问题搜索。)
所以你只是想两个数组的交集(即,出现在两人面前的设定值)? –
是的,这是我期待的结果 – Tuux
如果你有谷歌的“javascript数组交集”,我喜欢[this](https://stackoverflow.com/a/43820518/7852370)之一。 –