所以我有一个看起来像下面显示的数组:
const newTeachers = [
{ firstName: "Steve", subjects: ["English", "Maths", "History"] },
{ firstName: "Celia", subjects: ["Maths", "Science"] },
];
我想创建一个函数,该函数接受2个参数:1是数组,2nd是过滤器字符串值。
function fliterSubject(teachers, subject) {
}
我已经研究了实现以下代码行的内置方法:
return newCandidates.filter(teacher=> teacher.subjects.includes(subject));
但是我想了解如何手动过滤而不是使用内置过滤器功能。
答案 0 :(得分:1)
说明
您可以通过简单的for循环来实现。
因此,您需要循环在函数中作为参数获取的数组。
创建一个临时数组,仅在满足特定条件时将值压入其中,然后从函数中返回该数组。
是这样的:-
function manuamMap(input, search){
Let temp = [];
for(let i=0; i<limit; i++) {
if(some confition){
temp.push();
}
}
return temp
}
答案 1 :(得分:1)
请检查此内容。
var filterSubject = function(teachers, subject) {
var filteredTeachers = [];
for (var i=0; i<=teachers.length-1; i++) {
var teacher = teachers[i];
for (var j=0; j<=teacher.subjects.length-1; j++) {
if (teacher.subjects[j].toLowerCase()== subject.toLowerCase()) {
filteredTeachers.push(teacher);
}
}
}
return filteredTeachers;
}
请检查示例@ CodePen https://codepen.io/animatedcreativity/pen/213ddd0a66b73b05c907da72c8aef3e3