javascript - 有没有办法循环每个与另一个数组中相同的元素?
问题描述
我对 Javascript 很陌生,所以如果我犯了任何明显的错误,请原谅我。
本质上,我有两个数组,我想为第二个数组中的每个元素循环。到目前为止,我有这个:
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
没有。它只会执行一次,即使我知道两个数组中都有多个元素。
解决方案
您需要首先过滤掉第一个数组中的所有元素,这些元素在第二个数组中不存在。然后过滤器的结果就是您要映射的数组。
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
推荐阅读
- gnuplot - Gnuplot:“互补”虚线
- customization - 使用自定义目标函数进行多类分类时如何设置lightgbm的参数?
- javascript - 将数组转换回 jQuery 集
- raku - perl6 占位符变量和主题变量
- python - 将变量从类中的另一个函数传递到池
- java - JBAS014613:操作(“部署”)失败 - 地址:([(“部署”=>“test.war”)])
- css - 是什么导致省略号在css中不显示?
- c - Pragma (OMP) 如何影响执行一段代码所用时间的测量?
- reactjs - 如何用 jest 测试函数?
- c - 何时为 tf-idf 使用哪个日志库?