JavaScript:如何检查一个数组是否包含与第二个数组相同的元素?

JavaScript: How can i check if an array contains elements in common with a second array?

会很简单的问题,

我有这两个数组:

var pcNumbers = [1,2,3,4,5];
var userNumbers = [1,2,7,8,9];

实际上我必须找到一种方法来创建一个提示“有两个共同的元素,1 和 2”

蒂亚

好吧,这个问题真的很简单。

遍历第一个数组并检查每个元素是否出现在第二个数组中。

如果是,将其推送到另一个数组或仅显示它。

const a = [1,2,3,4,5,6,7,8,9,10];
const b = [2,4,5,7,11,15];

for(let i of a){
  if(b.includes(i)){
    console.log(i)
  }
}
--------- OR --------------
console.log(a.filter(e => b.includes(e)))

您可以使用 Array.prototype.filter()

检查另一个数组中的每一项来过滤一个数组

The filter() method creates a new array with all elements that pass the test implemented by the provided function.

Array.prototype.includes()

The includes() method determines whether an array includes a certain value among its entries, returning true or false as appropriate.

var pcNumbers = [1,2,3,4,5];
var userNumbers = [1,2,7,8,9];
var commonNumbers = pcNumbers.filter(i => userNumbers.includes(i));
console.log(commonNumbers);

一个快速的解决方案可能是这样的:

const pcNumbers = [1,2,3,8,5];
const userNumbers = [1,2,7,8,9];
const newArr = [];

for (let i = 0; i < pcNumbers.length; i++) {
    for (let j = 0; j < userNumbers.length; j++) {
        if (pcNumbers[i] === userNumbers[j]) {
            newArr.push(pcNumbers[i])
        }
    }
};

console.log(`These are in common: ${newArr.join(', ')}`)

这将导致:

这些是共同点:1、2