按对象属性过滤对象数组

德尔明

我有很多物体

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章