不确定如何将这个.filter()与箭头函数一起使用。
使用说明:
使用内置过滤器方法对对象的作业数组进行筛选,并返回作为程序员的工作人员的对象。确保将箭头函数与filter方法结合使用。
尝试过的解决方案:
var jobs = [{receptionist: "James"},
{programmer: "Steve"},
{designer: "Alicia"}];
var solution = jobs.filter(person => person === "programmer");发布于 2018-05-05 03:37:16
您可以通过多种方法来实现它,例如使用在……里面、使用包括()等等。但如果我是你,我就用hasOwnProperty试试
hasOwnProperty()方法返回一个布尔值,指示对象是否将指定的属性作为自己的属性(而不是继承它)。
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)发布于 2018-05-05 03:25:07
您需要检查对象的键(在本例中,只检查单个键),以确定它是否与'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);
发布于 2018-05-05 03:37:58
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")})https://stackoverflow.com/questions/50185401
复制相似问题