有没有一种方法可以循环到与另一个数组相同的每个元素?

时间:2020-05-27 14:46:06

标签: javascript arrays foreach

我对Java语言还很陌生,所以如果我犯了任何明显的错误,请原谅我。

基本上,我有两个数组,我想为同样位于第二个数组中的每个元素循环。到目前为止,我有这个:

if(obtainedCards.some( sp => Boosters.SP.includes(sp)))
{
    obtainedCards.forEach(potential => Boosters.SP.includes(potential))
    {
        // CHANGE THIS BACK TO 0, 100 AFTER TESTING
        this.chance = CardsBetween(76, 100);

        console.log(this.chance);
        if(this.chance >= 76)
        {
            this.noOfSPs += 1;
            console.log("Test: " + this.chance);
        }
    };

    console.log("Chance is: " + this.chance);
    console.log("No of SPs is: " + this.noOfSPs);

   //return chance, 
   return noOfSPs;
}

第一个if语句按预期工作,但forEach无效。即使我知道两个数组中都有多个元素,它也只会执行一次。

1 个答案:

答案 0 :(得分:1)

您需要首先过滤掉第一个数组中的所有元素,而第二个数组中不存在。 然后过滤器的结果就是您要映射的数组。

const array_1 = [1, 2, 3];
const array_2 = [4, 5, 2];

const getArrayWithSameElements = (arr1, arr2) => {
    return arr1.filter(item => arr2.includes(item));
}

getArrayWithSameElements(array_1, array_2).map(item => console.log(item)) // This will loop through every item in array 1, which is present in array 2