例如有一个很大对象数组
var arr = [{
id: 1,
name: 'a'
},{
id: 10,
name: 'c'
}
.......
];
我现在有一个id = 10, 希望在这个arr中快速查询出这个对象
{
id: 10,
name: 'c'
}
我知道循环arr, 判断循环当前对象的id是否为10可以, 但是有没有更好的方法呢
例如有一个很大对象数组
var arr = [{
id: 1,
name: 'a'
},{
id: 10,
name: 'c'
}
.......
];
我现在有一个id = 10, 希望在这个arr中快速查询出这个对象
{
id: 10,
name: 'c'
}
我知道循环arr, 判断循环当前对象的id是否为10可以, 但是有没有更好的方法呢
var arr1 = [{
id: 1,
name: 'yc',
age: 1
},{
id: 20,
name: 'lqy',
age: 2
}];
var arr2 = [];
//转换成 hash,以空间换时间
arr1.forEach(function(element, index) {
arr2[element.id] = element;
});
arr1 = arr2;
console.log(arr1[20],arr1);
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
以上方法用的是分治法的思想,二分查找