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);

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'))

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"));
添加回答
举报