首页 > javascript对象数组如何快速找出存储的某个对象

javascript对象数组如何快速找出存储的某个对象

例如有一个很大对象数组

var arr = [{
    id: 1, 
    name: 'a'
},{
    id: 10, 
    name: 'c'
}
.......
];

我现在有一个id = 10, 希望在这个arr中快速查询出这个对象

{
    id: 10,
    name: 'c'
}

我知道循环arr, 判断循环当前对象的id是否为10可以, 但是有没有更好的方法呢


数组就不太好弄了,要么把数组转成用id做key的hash,复杂度O(1),要么用二分查找复杂度O(logn)也还算效率高


[
    {
        id: 1,
        name: 'a'
    },
    {
        id: 2,
        name: 'b'
    },
].find(function (x) {
    return x.id === 10
})

以上方法用的是分治法的思想,二分查找

【热门文章】
【热门文章】