如何在不使用Javascript内置函数的情况下进行过滤?

时间:2018-12-02 13:57:48

标签: javascript arrays filter

所以我有一个看起来像下面显示的数组:

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));

但是我想了解如何手动过滤而不是使用内置过滤器功能。

2 个答案:

答案 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