首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >滤光箭函数(ES6)

滤光箭函数(ES6)
EN

Stack Overflow用户
提问于 2018-05-05 03:22:59
回答 4查看 5.6K关注 0票数 2

不确定如何将这个.filter()与箭头函数一起使用。

使用说明:

使用内置过滤器方法对对象的作业数组进行筛选,并返回作为程序员的工作人员的对象。确保将箭头函数与filter方法结合使用。

尝试过的解决方案:

代码语言:javascript
复制
var jobs = [{receptionist: "James"}, 
            {programmer: "Steve"},
            {designer: "Alicia"}];

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

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-05-05 03:37:16

您可以通过多种方法来实现它,例如使用在……里面、使用包括()等等。但如果我是你,我就用hasOwnProperty试试

hasOwnProperty()方法返回一个布尔值,指示对象是否将指定的属性作为自己的属性(而不是继承它)。

代码语言:javascript
复制
var jobs = [{
    receptionist: "James"
  },
  {
    programmer: "Steve"
  },
  {
    designer: "Alicia"
  }
];

var solution = jobs.filter(obj => obj.hasOwnProperty('programmer'));
console.log(solution)

in

代码语言:javascript
复制
var jobs = [{receptionist: "James"}, 
            {programmer: "Steve"},
            {designer: "Alicia"}];

var solution = jobs.filter(obj => 'programmer' in obj);
console.log(solution)

includes

代码语言:javascript
复制
var jobs = [{receptionist: "James"}, 
            {programmer: "Steve"},
            {designer: "Alicia"}];

var solution = jobs.filter(obj => Object.keys(obj).includes('programmer'));
console.log(solution)
票数 5
EN

Stack Overflow用户

发布于 2018-05-05 03:25:07

您需要检查对象的键(在本例中,只检查单个键),以确定它是否与'programmer'匹配。

代码语言:javascript
复制
const jobs = [{receptionist: "James"}, 
        {programmer: "Steve"},
        {designer: "Alicia"}];
const match = jobs.find((job) => job.hasOwnProperty('programmer'));
console.log(match);

但这是一个非常奇怪的物体结构。如果可以,请尝试重构代码,使您的对象类似于以下内容,以便更容易地进行迭代:

代码语言:javascript
复制
const jobs = [{
    title: 'receptionist',
    name: "James"
  },
  {
    title: 'programmer',
    name: "Steve"
  },
  {
    title: 'designer',
    name: "Alicia"
  }
];
const match = jobs.find(({title}) => title === 'programmer');
console.log(match);

票数 3
EN

Stack Overflow用户

发布于 2018-05-05 03:37:58

filter需要的是一个布尔返回值,它告诉它某个特定的元素满足条件,应该被过滤掉。

在这里,hasOwnProperty确实返回一个布尔值,它充当filter箭头函数的返回值。

代码语言:javascript
复制
const jobs = [{receptionist: "James"}, 
            {programmer: "Steve"},
            {designer: "Alicia"}];

const solution = jobs.filter(person => person.hasOwnProperty("programmer"));

console.log(solution);

注意,如果箭头函数的主体只有一行,则不需要显式使用return关键字。

对于例如,下面的代码相当于上面的代码段。

代码语言:javascript
复制
jobs.filter((person)=>{return person.hasOwnProperty("programmer")})
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50185401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档