我正在尝试用两个数组制作第三个数组。我想检查数组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));
答案 0 :(得分:3)
您可以将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))));