Javascript 是否有一种直接的方法来检查一个简单数组是否存在于另一个数组中

Javascript 是否有一种直接的方法来检查一个简单数组是否存在于另一个数组中,javascript,arrays,Javascript,Arrays,在以健康实践为中心的应用程序中,我需要检查一个阵列是否存在于另一个阵列中。比赛条件如下: *是否有其他不匹配的元素并不重要 *一个术语在“haystack”数组中出现多次并不重要 我们在Lodash讨论中找到了一个很好的解决方案。它在JSFiddle中进行了模拟,似乎工作得很好 但在相当复杂的应用程序中,它使用Lodash将浏览器炸开 各种配置 这是使用Lodash的代码 let haystack = ['health tips','iridology','something else','as

在以健康实践为中心的应用程序中,我需要检查一个阵列是否存在于另一个阵列中。比赛条件如下: *是否有其他不匹配的元素并不重要 *一个术语在“haystack”数组中出现多次并不重要

我们在Lodash讨论中找到了一个很好的解决方案。它在JSFiddle中进行了模拟,似乎工作得很好

但在相当复杂的应用程序中,它使用Lodash将浏览器炸开

各种配置

这是使用Lodash的代码

let haystack = ['health tips','iridology','something else','asdfasd'];
let needle = ['iridology','health tips'];

alert(_.intersection(needle,haystack).length === needle.length);

有人知道在普通Javascript中执行此操作的简单方法吗?

您可以使用
数组.prototype来执行此操作。
指针
数组上的每个

let haystack=[‘健康提示’、‘虹膜学’、‘其他东西’、‘asdfasd’];
let needle=['iridology','health tips'];
函数checkArraySubset(内部数组、外部数组){
返回innerArray.every(str=>outerArray.includes(str));
}
//真的
console.log(checkArraySubset(针、草垛));
针头=[‘虹膜学’、‘健康提示’、‘不在干草堆中’;
//假的

console.log(checkArraySubset(针、草垛))使用
减少
的一种可能方法包括

let haystack=[‘健康提示’、‘虹膜学’、‘其他东西’、‘asdfasd’];
let needle=['iridology','health tips'];
const found=needle.reduce((acc,item)=>acc&haystack.includes(item),true);

console.log('found',found)您可以从lodash导入单个函数,而无需在代码中包含整个库:
从“lodash/intersection”导入交叉点
也可以正常工作,并且不关心针顺序(针顺序不重要,但很有趣)。有用的评论硬选择!所有的例子似乎都很合适。这个答案鼓励了深入研究map/reducethat的想法,这就是我为什么说“其他方式”: