不确定如何使用箭头功能完全使用此.filter()。
说明:
使用内置过滤器方法过滤对象的jobs数组,并返回作为程序员的作业对象。确保将箭头功能与过滤方法结合使用。
尝试过的解决方案:
var jobs = [{receptionist: "James"},
{programmer: "Steve"},
{designer: "Alicia"}];
var solution = jobs.filter(person => person === "programmer");
答案 0 :(得分:4)
您可以通过多种方式执行此操作,例如使用in,使用includes()等。但如果我是你,我会用hasOwnProperty
尝试这种方式hasOwnProperty()方法返回一个布尔值,指示是否 object将指定的属性作为自己的属性(而不是 继承它)。
var jobs = [{
receptionist: "James"
},
{
programmer: "Steve"
},
{
designer: "Alicia"
}
];
var solution = jobs.filter(obj => obj.hasOwnProperty('programmer'));
console.log(solution)
使用in
:
var jobs = [{receptionist: "James"},
{programmer: "Steve"},
{designer: "Alicia"}];
var solution = jobs.filter(obj => 'programmer' in obj);
console.log(solution)
使用includes
:
var jobs = [{receptionist: "James"},
{programmer: "Steve"},
{designer: "Alicia"}];
var solution = jobs.filter(obj => Object.keys(obj).includes('programmer'));
console.log(solution)
答案 1 :(得分:3)
您需要检查对象的键(或者,在这种情况下,只需检查单个键),看它是否与'programmer'
匹配。
const jobs = [{receptionist: "James"},
{programmer: "Steve"},
{designer: "Alicia"}];
const match = jobs.find((job) => job.hasOwnProperty('programmer'));
console.log(match);
但这是一个非常奇怪的对象结构。如果可以,请尝试重构代码,使您的对象类似于以下内容,以便更容易迭代:
const jobs = [{
title: 'receptionist',
name: "James"
},
{
title: 'programmer',
name: "Steve"
},
{
title: 'designer',
name: "Alicia"
}
];
const match = jobs.find(({title}) => title === 'programmer');
console.log(match);
答案 2 :(得分:2)
filter
需要的是一个布尔返回值,它告诉它一个特定的元素满足条件并且应该被过滤掉。
这里,hasOwnProperty
确实返回一个布尔值,这将作为filter
的箭头函数的返回值。
const jobs = [{receptionist: "James"},
{programmer: "Steve"},
{designer: "Alicia"}];
const solution = jobs.filter(person => person.hasOwnProperty("programmer"));
console.log(solution);
请注意,如果箭头函数的正文只有一行,则无需明确使用return
关键字。
例如,以下代码等同于上面的代码段。
jobs.filter((person)=>{return person.hasOwnProperty("programmer")})
答案 3 :(得分:-1)
var solution = jobs.filter(person => person ===“programmer”);
这与:
相同var solution = jobs.filter(function(person) {
return (person === "programmer" ? true : false);
});
person是jobs数组中的元素。现在自己回答:对于您想要的解决方案,以下条件是否正确?
{ title: 'programmer', name: "Steve"} === "programmer"