【发布时间】:2015-12-28 16:24:57
【问题描述】:
这应该能够做的是接收一个填充有一个字母值的二维数组,并返回一个包含所有共享值的数组。这是我目前所拥有的:
var res = array[0].filter(function(x){
return array.every(function(y){
return y.indexOf(x) >= 0
})
});
return res;
这是某种形式的工作状态,但只有在某些条件下才会使它非常受欢迎。 按预期工作:
var array = [["x","x"],
["x","x","x"]];
这会返回 ["x","x"] 的预期数组,但是当这样时:
var array = [["x","x","x"],
["x","x"]];
返回 ["x","x","x"]
如您所见,这两个数组仅共享 2 个常见的 x,但代码在不同情况下并未反映这一点。它还应该能够处理带有其他字母的数组,如下所示:
var array = [["x","x","z","y","y"],
["x,"x","x","y"],
["x","x","z","y"]];
这样它应该返回 ["x","x","y"] 因为所有数组共享 2 个公共 x 和 1 个公共 y
【问题讨论】:
-
所以你想要一个函数,你可以传入任意数量的数组,然后取回公共值,而不管索引如何?
-
第三个数组中没有
y。 -
是的,我没有说清楚我是如何设置示例的,但是是的
标签: javascript arrays compare