如何解决我在这个函数/嵌套循环中哪里出错了?
我是JS的新手,经常为了学习JS做好这些挑战。
我在这里尝试使用嵌套循环,并尝试创建一个函数,该函数应该从schoolsB
中不在的schoolsA
数组中返回值,所以我想要的预期输出是:
"Edify","Beacon House"
我认为我与if-else在一起,但它只返回两个数组中都存在的值,但是我还需要其他东西!
我尝试这样做:
if (!(arr2[i].includes(arr1[j]))) {
但是这也不起作用!
我在哪里误住了?
PS:我确实知道我可以简单地使用过滤器方法来实现我想要的功能,但我也想学习使用它!
let schoolsA = ["Aman","Shoeby","Rose"];
let schoolsB = ["Aman","Edify","Beacon House"];
function filtering(arr1,arr2) {
let output = [];
for (let i = 0; i < arr2.length; i++) {
for (let j = 0; j < arr1.length; j++) {
if (arr2[i].includes(arr1[j])) {
output.push(arr2[i]);
}
}
}
return output;
}
console.log(filtering(schoolsA,schoolsB));
解决方法
可能您想要这样:
function filtering(arr1,arr2) {
let output = [];
// iterate over every element in arr2
for (let i = 0; i < arr2.length; i++) {
// If arr1 does not include the element arr2[i],then add it to the output
if (!arr1.includes(arr2[i])) {
output.push(arr2[i]);
}
}
return output;
}
,
let schoolsA = ["Aman","Shoeby","Rose"];
let schoolsB = ["Aman","Edify","Beacon House"];
function filtering(arr1,arr2) {
let output = [];
for (let element of arr2) {
if (!arr1.includes(element)) {
output.push(element);
}
}
return output;
}
console.log(filtering(schoolsA,schoolsB));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。