我正在努力应对这一挑战,无法解决。

这是挑战:

使用内置的filter方法过滤对象的jobs数组,并以程序员的身份返回有工作的人的对象。确保将箭头功能与过滤方法结合使用。

最终解决方案中不应使用ES5函数声明语法。

不应该使用for循环。

解决方案中的任何地方都不应使用function关键字。

这是提供的数组:

var jobs = [{receptionist: "James"},
            {programmer: "Steve"},
            {designer: "Alicia"}];


这是我的代码:

var solution = jobs.filter((programmer) => programmer === "Steve");


还提供了var解决方案。

最佳答案

在传递给filter的函数中,参数是一个对象(因为jobs是对象的数组),而不是字符串。 programmer是该对象的属性。

另一个问题是,当您应检查对象是否具有programmer属性时,代码正在检查特定名称(Steve)。

最后,请记住filter返回一个数组,因此您的解决方案将是该数组的第一个元素。

这有效:



var jobs = [{receptionist: "James"},
            {programmer: "Steve"},
            {designer: "Alicia"}];

var solution = jobs.filter((person) => person.programmer)[0];

console.log(solution);

09-25 19:14