Javascript 按对象属性筛选对象数组
我得到了一组物体Javascript 按对象属性筛选对象数组,javascript,reactjs,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
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)
}
getName=(id)=>{
让name=[]
对于(变量i=0;i
有更好的方法吗?您可以使用获取对象,然后返回该对象的名称
const countryList=[{name:'阿富汗',id:'AF'},{name:'奥兰群岛',id:'AX'},{name:'阿尔巴尼亚',id:'AL'},{name:'阿尔及利亚',id:'DZ'}]
const getName=id=>(countryList.find(x=>x.id==id)|{}).name
console.log(getName('AX'))
log(getName('DZ'))
如果id
是唯一的,并将未知项作为默认对象,则可以找到该名称
const
getName=id=>(countryList.find(o=>o.id==id)| |{}),
countryList=[{name:'Afghanistan',id:'AF'},{name:'Åland Islands',id:'AX'},{name:'Albana',id:'AL'},{name:'Alegaria',id:'DZ'}];
log(getName('AL'));
console.log(getName('UK')
您可以使用查找
数组方法:
const countryList=[
{name:'Afghanistan',id:'AF'},
{名称:'Åland Islands',id:'AX'},
{name:'albana',id:'AL'},
{姓名:'阿尔及利亚',id:'DZ'}];
getName=(id)=>{
让country=countryList.find(c=>c.id==id);
返回国家/地区!==未定义
?国家/地区名称
:“未找到”;
}
log(getName('DZ'));
您不需要“name”数组
getName=(id)=>{
对于(变量i=0;i
我想这也行
const countryList = [
{ name: 'Afghanistan', id: 'AF' },
{ name: 'Åland Islands', id: 'AX' },
{ name: 'Albania', id: 'AL' },
{ name: 'Algeria', id: 'DZ' }];
getName=(id)=>{
countryList.filter(item=>{item.id===id})
console.log(countryList[0].name)
}
如果国家id是唯一的,出于性能原因,您可以使用
getCountryName = (countryList, id) => {
name = null;
countryList.some((x, idx) => {
result = false;
if(x.id === id) {
name = x.name;
result = true;
}
return result;
});
return name;
}
用法是
getCountryName(countryList, 'AF')
结果是
'Afghanistan'
在这种情况下,只需检查国家即可,因为未定义的是一个错误的值<代码>返回国?country.name:'未找到'代码>@MaheerAli你是对的。然而,对于不知道find在未找到元素的情况下返回什么的人来说,更清楚的是声明返回undefined而不是null,例如,这就是我所寻找的。谢谢你们,希望我能在6分钟内把两个答案都标记为正确。不幸的是,由于我的低分,我不能对你的答案投赞成票。多么可笑的书呆子