如何快速的查找出数组对象的位置信息?

const arr = [{id:1,name:'2'}, {id:3, name:'4'}, {id:4, name:'5'}]

数组对象中的id值是唯一的,想通过传入的id值来找到这个对象在数组中的位置信息。
目前使用的方式,通过循环这个数组一个个去判断,来找到位置。
有什么快速简洁的方式?

阅读 2.6k
3 个回答
  const arr = [{ id: 1, name: '2' }, { id: 3, name: '4' }, { id: 4, name: '5' }]
  let obj = arr.find((it, index) => {
    if (it.id == 3) {
      console.log(index);
      return true;
    }
  })
  console.log(obj);

如果是一层,可以用 .findIndex() 这个API。
如果是多层的话,就得借助递归了。

const arr = [{id:1,name:'2'}, {id:3, name:'4'}, {id:4, name:'5'}]
const getIndex = (targetid) => arr.findIndex(item => item.id === targetid)
console.log(getIndex(4))
// log 2
新手上路,请多包涵

使用二分查找的方式来查找,这种方式比使用循环的方式查找更快。
比如JavaScript 的 indexOf() 方法是使用的二分法的。

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