Доброго времени суток всем.
Подвернулось задание- Имеется массив с объектами, имеющими поле «id» с уникальными значениями в пределах этого массива. Требуется искать объекты в этом массиве, имеющие определенное значение «id». Плюсы и минусы.
Самый очевидный способ(тупо перебрать массив до попадания) я сделал. Сначала для теста массив создал.
function Obj(id){
this.id = id
}
var arr = [];
for (var j = 0; j < 5000000; j++){
var obj = new Obj(j);
arr.push(obj);
}
var init="time";
const FINDID = 4999999;
function findEl(array) {
for (var i = 1; i < (array.length + 1); i++){
if (array[i].id == FINDID){
console.log ("this is " + i + " element");
break
}
}
}
console.time(init);
findEl(arr);
console.timeEnd(init);
Написал, что если большое количество объектов, то поиск возможно долгий будет. По времени функция такая ~120.000ms выполняется.
НО. Какие варианты еще есть? Может кто поможет?
Может еще взять все объекты из массива, склеить их в строку, разделяя чем- нибудь, типа (obj1.id тут уже строковая будет)
var str = "obj1.id#obj2.id#и так далее";
и потом уже искать в строке. Но это порнография какая- то уже получается, да и, наверняка долго будет.
Я новичок в программировании, особо не хайте
Спасибо огромное тому, кто наведет на путь истинный