我有多个带有字符串值的数组,我想对它们进行比较,并且只保留它们之间相同的匹配结果。
给定此示例代码:
var arr1 = ['apple', 'orange', 'banana', 'pear', 'fish', 'pancake', 'taco', 'pizza'];
var arr2 = ['taco', 'fish', 'apple', 'pizza'];
var arr3 = ['banana', 'pizza', 'fish', 'apple'];
我想生成以下数组,它包含所有给定数组的匹配项:
['apple', 'fish', 'pizza']
编辑我想我应该提到可能有未知数量的数组,我只是使用3作为一个例子。
var result = arrays.shift().filter(function(v) {
return arrays.every(function(a) {
return a.indexOf(v) !== -1;
});
});
演示:http://jsfidle.net/nwjcp/2/
您可以首先对外部数组进行排序,以获得开头的最短数组...
arrays.sort(function(a, b) {
return a.length - b.length;
});
为了完整起见,这里有一个处理数组中重复项的解决方案。它使用.reduce()
而不是.filter()
...
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;
}, []);
问题内容: 我有多个带有字符串值的数组,我想比较它们,只保留 所有 它们之间相同的匹配结果。 给出以下示例代码: 我想产生以下数组,其中包含来自所有给定数组的匹配项: 我知道我可以将所有数组组合在一起,但这只是给我一个包含所有内容以及重复项的数组。是否可以轻松完成此操作而无需诸如underscore.js之类的库的开销? 编辑 我想我应该提到的是,可能存在未知数量的数组,我只是以3为例。 问题答案
问题内容: 我有这样的桌子设计 并希望通过查询返回属于部门a和b的所有person_id。我认为这可能与 但不能完全弄清楚。有人知道我该怎么做吗? 编辑:我想我可以执行以下操作。但这似乎是一种hack。 问题答案: 注意:仅当一个人可以多次成为同一部门的成员时,才需要使用DISTINCT。
问题内容: 我有两个numpy数组A和B。A包含唯一值,而B是A的子数组。 例如: 问题答案: 您可以使用带有- 如果您关心维护订单,也可以使用- 对于一般情况,当&是未排序的数组时,您可以在中引入选项,就像这样- 为了解决一般情况,我还会添加我最喜欢的内容- 样品运行-
问题内容: 如果我有一个看起来像这样的表: 还有一个THINGS表,如下所示: 我正在尝试提出一个纯SQL查询,该查询可以让我找出什么可以访问什么。基本上,我想要一个看起来像这样的查询: 并返回“ John”和“ Mary”。关键是访问事物所需的许可数量是任意的。 我觉得这应该很明显,但是我无法提出一个优雅的解决方案。首选与Oracle兼容的解决方案。 编辑: Kosta和JBrooks的解决方案
本文向大家介绍查找图的匹配数,包括了查找图的匹配数的使用技巧和注意事项,需要的朋友参考一下 问题陈述 下图的匹配数字是多少? 解 顶点数= 9 我们只能匹配8个顶点。 匹配号码为4。
我实现了以下代码: 但是,它同时返回和,即使在考虑我报告的数组时,我只打印(因为数组#1包含) 有什么办法可以修正我的代码吗?谢谢你