使用 Javascript 检查数组中存在的元素

Check elements present in array using Javascript

我有一种情况想检查一个数组中的元素是否存在于另一个数组中。如果存在元素,则将它们推送到新数组中。在这种情况下,我有一个字符串数组。

例如

var check = ["6003", "6005", "6010"]; //static values. I need to check these elements if they are present in InputValues

var InputValues = ["5005", 2005", "6010"]; //dynamic input values

var result = ["6010"]; //dyanimic final array based off elements in InputValues

同理,

var InputValues = ["5005", 6005", "6010"];

var result = ["6005", "6010"];

谁能告诉我如何实现这个动态结果。

var result = InputValues.filter((val) => check.includes(val));

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes#Browser_compatibility

编辑:用错方法了!如果您不关心 IE(尽管它在 Edge 中),.includes() 是有效的,否则这是 "modern" 要使用的 :-)

您可以使用Array.indexOf with Array.filter

var result = InputValues.filter(elem => check.indexOf(elem) >= 0);

基本上它所做的是,它将根据 check 区分大小写的方式过滤 InputValues 的元素。