javascript - 按对象属性过滤对象数组

标签 javascript reactjs

我得到了对象数组

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

有没有更好的方法?

最佳答案

您可以找到名称,如果 id 是唯一的,并为未知项目取一个默认对象。

const
    getName = id => (countryList.find(o => o.id === id) || {}).name,
    countryList = [{ name: 'Afghanistan', id: 'AF' }, { name: 'Åland Islands', id: 'AX' }, { name: 'Albania', id: 'AL' }, { name: 'Algeria', id: 'DZ' }];

console.log(getName('AL'));
console.log(getName('UK'));

关于javascript - 按对象属性过滤对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56092804/

相关文章:

javascript - 匹配字符但不包括该字符和之后的所有内容

javascript - Three.js - 如何为 3D View 重现此图像?

reactjs - rechart如何添加实心圆点

javascript - 未捕获的类型错误 : Cannot read property 'files' of undefined

javascript - 如何获得 2 到 12 rolldie 的总和?

java - 如何在解析 html 页面时从 html 页面中的 javascript 函数中提取变量的值

javascript - 将类应用于 jquery 中的动态元素

javascript - 请求失败,状态码 409 : React Front End & Python Flask Back End

reactjs - 为什么我们需要 Flux 中的调度程序?

javascript - 当我将屏幕尺寸缩小到 Bootstrap 的中号、小号或超小号时,我的点击处理程序停止工作,css 悬停属性也停止工作