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

我正在尝试创建一个函数,它的作用类似于搜索机制,它遍历对象数组并返回一个特定的数组对象,该对象包含该数组中的特定值(搜索参数)


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",},


元芳怎么了
浏览 214回答 3
3回答

青春有我

数组的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);

慕田峪4524236

您可以使用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'))

白板的微信

您可以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"));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript