我有很多物体
const countryList = [
{ name: 'Afghanistan', id: 'AF' },
{ name: 'Åland Islands', id: 'AX' },
{ name: 'Albania', id: 'AL' },
{ name: 'Algeria', id: 'DZ' }]
我想按对象“ id”过滤数组并获取名称
这是我已经完成的工作
getName = (id) => {
let name=[]
for (var i = 0; i < countryList.length ; i++) {
if (countryList[i].id === id) {
name.push(countryList[i]);
}
}
console.log(name[0].name)
}
有什么更好的方法吗?
您可以使用find
数组方法:
const countryList = [
{ name: 'Afghanistan', id: 'AF' },
{ name: 'Åland Islands', id: 'AX' },
{ name: 'Albania', id: 'AL' },
{ name: 'Algeria', id: 'DZ' }];
getName = (id) => {
let country = countryList.find(c=>c.id === id);
return country !== undefined
? country.name
: 'not found';
}
console.log(getName('DZ'));
请注意,这里getName
现在返回一个字符串,并且没有任何副作用,例如在控制台中记录找到的值。该函数现在也完全按照其名称所说的进行操作,只是获得名称。
有关重新升级此方法的更多信息,请在此处查看。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句