检查数组元素是不是包含其他数组中的部分值[重复]
Posted
技术标签:
【中文标题】检查数组元素是不是包含其他数组中的部分值[重复]【英文标题】:Check if array element contains part of value in other array [duplicate]检查数组元素是否包含其他数组中的部分值[重复] 【发布时间】:2018-11-16 02:34:33 【问题描述】:我正在尝试从两个数组中创建第三个数组。我想检查数组 2 是否包含数组 1 的元素。
所以 Array2 可能看起来像:
["Bol Sales ", "BookStore Amazon Sales", "Nintendo Sales", "XBOX" ]
数组 1:
["Bol", "Amazon","XBOX"]
数组 3 应该是:
["Bol", "Amazon", "XBOX"]
但大多数结果只有 XBOX(所以,array1.val 完全匹配 array2.val)。
我尝试了以下方法:
var array1 = ["Bol", "Amazon", "XBOX"],
array2 = ["Bol Sales ", "BookStore Amazon Sales", "Nintendo Sales", "XBOX"],
array3 = [];
array3 = array1.filter(function(store)
return array2.includes(store);
);
console.log(array3);
array3 = array1.filter(function(store)
return array2.indexOf(store) >= 0;
);
console.log(array3);
var storesToCheck = function(array1, array2)
return array1.some(function(value)
return array2.indexOf(value) >= 0;
);
;
console.log(storesToCheck(array1, array2));
【问题讨论】:
请注意我为你制作的sn-p。它被称为minimal reproducible example - 请在研究后提供这样的东西。 【参考方案1】:您可以将includes
方法与some
结合使用,方法是将回调 提供的函数作为参数传递。
arr2 = ["Bol Sales ", "BookStore Amazon Sales", "Nintendo Sales", "XBOX" ]
arr1 = ["Bol", "Amazon","XBOX"]
console.log(arr1.filter(a => arr2.some(item => item.includes(a))));
【讨论】:
如果 arr2 = ["Bol Sales", "BookStore Amazon Sales", "Nintendo Sales", "XBOX" ] and arr1 = ["Bol", "Amazon","XBOX","Sales "] 你的代码输出是 ["Bol", "Amazon","XBOX","Sales"]...所以请检查你的逻辑...以上是关于检查数组元素是不是包含其他数组中的部分值[重复]的主要内容,如果未能解决你的问题,请参考以下文章