我的箭头功能有什么问题?
What's wrong with my arrow function?
我正在努力应对这个挑战,但无法弄清楚。
这是挑战:
使用内置的过滤方法过滤对象的作业数组和return 从事程序员工作的人的对象。确保将箭头功能与过滤方法结合使用。
不应在最终解决方案中使用 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
returns 一个 数组 ,因此您的解决方案将是该数组的第一个元素。
这个有效:
var jobs = [{receptionist: "James"},
{programmer: "Steve"},
{designer: "Alicia"}];
var solution = jobs.filter((person) => person.programmer)[0];
console.log(solution);
filter
正在将对象传递给它的回调函数(箭头函数)。您需要使用 hasOwnProperty
:
检查该对象是否具有名为 programmer
的 属性
var jobs = [{receptionist: "James"},
{programmer: "Steve"},
{programmer: "Another Steve"},
{designer: "Alicia"}];
var result = jobs.filter(obj => obj.hasOwnProperty("programmer"));
console.log(result);
我正在努力应对这个挑战,但无法弄清楚。
这是挑战:
使用内置的过滤方法过滤对象的作业数组和return 从事程序员工作的人的对象。确保将箭头功能与过滤方法结合使用。
不应在最终解决方案中使用 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
returns 一个 数组 ,因此您的解决方案将是该数组的第一个元素。
这个有效:
var jobs = [{receptionist: "James"},
{programmer: "Steve"},
{designer: "Alicia"}];
var solution = jobs.filter((person) => person.programmer)[0];
console.log(solution);
filter
正在将对象传递给它的回调函数(箭头函数)。您需要使用 hasOwnProperty
:
programmer
的 属性
var jobs = [{receptionist: "James"},
{programmer: "Steve"},
{programmer: "Another Steve"},
{designer: "Alicia"}];
var result = jobs.filter(obj => obj.hasOwnProperty("programmer"));
console.log(result);