为了账号安全,请及时绑定邮箱和手机立即绑定

从包含特定值的多维对象数组返回数组对象

从包含特定值的多维对象数组返回数组对象

元芳怎么了 2021-06-28 09:14:09
我正在尝试创建一个函数,它的作用类似于搜索机制,它遍历对象数组并返回一个特定的数组对象,该对象包含该数组中的特定值(搜索参数)var jobs= [  {    "startDate": "5/2017",    "endDate": null,    "isCurrent": true,    "seniority": "Senior",  },  {    "startDate": "5/2013",    "endDate": "5/2019",    "isCurrent": false,    "seniority": "Junior",  },]我想创建一个函数,您可以在其中提供数组、数组键和数组值,即nameOfFunction(jobs,"seniority","Senior")它返回/记录{"startDate": "5/2017","endDate": null,"isCurrent": true,"seniority": "Senior",},
查看完整描述

3 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

数组的filter方法就是这样做的,但如果你想包装它,你可以做这样的事情......


var jobs= [

  {

    "startDate": "5/2017",

    "endDate": null,

    "isCurrent": true,

    "seniority": "Senior",

  },

  {

    "startDate": "5/2013",

    "endDate": "5/2019",

    "isCurrent": false,

    "seniority": "Junior",

  },

]


const nameOfFunction = (ar, key, val) => ar.filter(obj=>obj[key]===val);


var results = nameOfFunction(jobs,"seniority","Senior") 

console.log(results);


查看完整回答
反对 回复 2021-07-01
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

您可以使用filter:


var jobs= [

  {

    "startDate": "5/2017",

    "endDate": null,

    "isCurrent": true,

    "seniority": "Senior",

  },

  {

    "startDate": "5/2013",

    "endDate": "5/2019",

    "isCurrent": false,

    "seniority": "Junior",

  },

]



const findObject = (obj, prop, value) => obj.filter(obj => obj[prop] === value)


console.log(findObject(jobs, 'seniority', 'Senior'))

编辑:


var jobs= [

  {

    "startDate": "5/2017",

    "endDate": null,

    "isCurrent": true,

    "seniority": "Senior",

  },

  {

    "startDate": "5/2013",

    "endDate": "5/2019",

    "isCurrent": false,

    "seniority": "Junior",

  },

]



const findObject = (obj, prop, value, key) => obj.filter(obj => obj[prop] === value).map(obj => obj[key])


console.log(findObject(jobs, 'seniority', 'Senior', 'startDate'))


查看完整回答
反对 回复 2021-07-01
?
白板的微信

TA贡献1883条经验 获得超3个赞

您可以filter在传入的数组上使用该方法。在这里,我也用解构赋值来获取值(v从通过当前对象的)key。然后我将对象 ( v)的值与val传递给函数的值进行比较,以查看它是否应该保留在新数组中。

请参阅下面的示例:

const jobs= [

  {

    "startDate": "5/2017",

    "endDate": null,

    "isCurrent": true,

    "seniority": "Senior",

  },

  {

    "startDate": "5/2013",

    "endDate": "5/2019",

    "isCurrent": false,

    "seniority": "Junior",

  },

];


const filterArr = (arr, key, val) => 

  arr.filter(({[key]:v}) => v===val);

  

console.log(filterArr(jobs, "seniority", "Senior"));


查看完整回答
反对 回复 2021-07-01
  • 3 回答
  • 0 关注
  • 213 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信