js中怎么用最简单的方法找到对象数组中的对应值?

如下面的数组,如果我拿到一个值是3,我怎么最简单的找到他对应的{id:3,name:'挂号'}中“挂号”

OperationTypeList:[
                    {id:0,name:'门诊充值'},
                    {id:1,name:'住院押金'},
                    {id:2,name:'划价缴费'},
                    {id:3,name:'挂号'},
                    {id:4,name:'核酸开单'},
                ]
阅读 2.6k
5 个回答

使用 Array.prototype.find()

var OperationTypeList = [
    {id:0,name:'门诊充值'},
    {id:1,name:'住院押金'},
    {id:2,name:'划价缴费'},
    {id:3,name:'挂号'},
    {id:4,name:'核酸开单'},
]

var result = OperationTypeList.find(item => item.id === 3)
console.log(result.name)
// log => '挂号'

find 过滤

1.用Array.prototype.filter()方法:

var OperationTypeList = [
    {id:0,name:'门诊充值'},
    {id:1,name:'住院押金'},
    {id:2,name:'划价缴费'},
    {id:3,name:'挂号'},
    {id:4,name:'核酸开单'},
]

var result = OperationTypeList.filter(item => item.id === 3)
console.log(result[0].name)
// log => '挂号'

2.用Array.prototype.forEach()方法:

var OperationTypeList = [
    {id:0,name:'门诊充值'},
    {id:1,name:'住院押金'},
    {id:2,name:'划价缴费'},
    {id:3,name:'挂号'},
    {id:4,name:'核酸开单'},
]

var result;
OperationTypeList.forEach(item => {
    if (item.id === 3) {
        result = item.name;
    }
})
console.log(result)
// log => '挂号'

3.用Array.prototype.map()方法:

var OperationTypeList = [
    {id:0,name:'门诊充值'},
    {id:1,name:'住院押金'},
    {id:2,name:'划价缴费'},
    {id:3,name:'挂号'},
    {id:4,name:'核酸开单'},
]

var names = OperationTypeList.map(item => item.name);
var result = names[OperationTypeList.findIndex(item => item.id === 3)];
console.log(result)
// log => '挂号'

使用find查找,只要找到第一条就停止查找,返回的是一个对象。

let resultName = OperationTypeList.find(item => item.id === 3)?.name

let result = OperationTypeList.find(item=>item.id===3).name

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题