我对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
无效。即使我知道两个数组中都有多个元素,它也只会执行一次。
答案 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