检查数组是否具有另一个数组中的元素

问题描述 投票:17回答:3

我有两个数组A = [0,1,2]B = [2,1,0]。如何检查B中是否存在A中的数字?

javascript ecmascript-6
3个回答
55
投票

注意:includes不是ES6,而是ES2016 Mozilla docs。如果仅移植ES6,这将中断。

您可以使用Array#every方法(以检查B中存在的数字)使用Array#every方法(以迭代并检查所有元素是否通过回调函数)。>>

Array#includes

Array#includes

要检查第二个数组中存在的单个元素,请执行以下操作:
A.every( e => B.includes(e) )

或对于较旧的浏览器,使用const A = [0, 1, 2], B = [2, 1, 0], C=[2, 1]; console.log(A.every(e => B.includes(e))); console.log(A.every(e => C.includes(e))); console.log(C.every(e => B.includes(e)));方法。

A[0].includes(e) 
//^---index

或者如果要检查第二个数组中存在的至少一个元素,则需要使用Array#indexOf方法(迭代并检查至少一个元素是否通过回调函数。)>

Array#indexOf

A[0].indexOf(e) > -1 

这是我用来比较两个数组的自定义函数。如果数组元素相似,则返回true;否则,返回false。注意:如果存在重复元素,则如果数组相等(array.len && array.val),则不返回true。

如果目的是实际比较数组,则以下内容也将考虑重复项

Array#some

希望这可以帮助某人:D


4
投票

这是我用来比较两个数组的自定义函数。如果数组元素相似,则返回true;否则,返回false。注意:如果存在重复元素,则如果数组相等(array.len && array.val),则不返回true。


2
投票

如果目的是实际比较数组,则以下内容也将考虑重复项

© www.soinside.com 2019 - 2024. All rights reserved.