我正在努力解决这个挑战并且无法弄明白。
这是挑战:
使用内置过滤器方法过滤对象的jobs数组,并返回作为程序员的作业对象。确保将箭头功能与过滤方法结合使用。
不应在最终解决方案中使用ES5函数声明语法。
不应该使用for循环。
解决方案中的任何位置都不应包含function关键字。
这是提供的数组:
var jobs = [{receptionist: "James"},
{programmer: "Steve"},
{designer: "Alicia"}];
这是我的代码:
var solution = jobs.filter((programmer) => programmer === "Steve");
还提供了var解决方案。
答案 0 :(得分:4)
在传递给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);

答案 1 :(得分:0)
filter
将对象传递给它的回调(箭头函数)。您需要使用programmer
检查该对象是否具有名为hasOwnProperty
的属性:
var jobs = [{receptionist: "James"},
{programmer: "Steve"},
{programmer: "Another Steve"},
{designer: "Alicia"}];
var result = jobs.filter(obj => obj.hasOwnProperty("programmer"));
console.log(result);