【问题标题】: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));

【问题讨论】:

标签: javascript arrays


【解决方案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"]...所以请检查你的逻辑...
猜你喜欢
  • 1970-01-01
  • 2021-12-14
  • 1970-01-01
  • 2013-02-20
  • 1970-01-01
  • 1970-01-01
  • 2017-01-08
  • 2016-10-13
  • 2018-04-23
相关资源
最近更新 更多