检查数组元素是否包含其他数组中值的一部分

44 浏览
0 Comments

检查数组元素是否包含其他数组中值的一部分

这个问题已经有了答案

确定数组是否包含某个值 [重复]

我想从两个数组中创建第三个数组。我想要检查数组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));

admin 更改状态以发布 2023年5月21日
0
0 Comments

你可以使用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))));

0