Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Поиск объектов в массиве (https://javascript.ru/forum/misc/39173-poisk-obektov-v-massive.html)

Lynatik 19.06.2013 12:46

рони Спасибо, все понял
Dim@ Спасибо за вариант, но он долгий очень

накатал несколько вариантов за ночь

Радует, что есть люди, готовые помочь. Человеческое спасибо всем!

Hekumok 19.06.2013 14:27

function Obj(id) {
  this.id = id ;
}
for(var arr = [], j = 0; j < 5000000; j++)
  arr.push(new Obj(j)) ;
var init = "time" ;
const FINDID = 4999999 ;
function findEl(array) {
  var i = 0 ;
  array.some(function(obj) {
    i++ ;
    return obj.id === FINDID ;
  }) ;
  console.log("this is " + i + " element") ;
}
console.time(init) ;
findEl(arr) ;
console.timeEnd(init);

Dim@ 19.06.2013 23:00

Lynatik,
В каком смысле долгий?

nerv_ 20.06.2013 00:23

ASSembler, http://javascript.ru/forum/misc/3917...tml#post257102

Lynatik 20.06.2013 01:40

В задании ничего не было сказано про id. только то, что они уникальные.
Задание вроде сделал и отдал уже.
Спасибо огромное всем за советы.
Реально помогаете. А я учусь. Скоро тоже кому- нибудь смогу помогать)

bes 20.06.2013 23:56

Цитата:

Сообщение от Lynatik
Имеется массив с объектами

в массиве хранятся не объекты :)

Hekumok 21.06.2013 00:11

bes, а что же тогда?

Lynatik 21.06.2013 00:18

bes,
действительно, что вы имеете ввиду?? о_О

bes 21.06.2013 00:35

Цитата:

Сообщение от Hekumok
bes, а что же тогда?

Цитата:

Сообщение от Lynatik
bes,
действительно, что вы имеете ввиду?? о_О

я думаю, что ссылки :)
в спецификации они представлены объектами внутреннего типа Reference
http://es5.javascript.ru/x8.html#x8.7
сами объекты, насколько я понимаю, хранятся обычно в куче (heap)

eugasl 21.06.2013 22:00

Как вариант можно еще так:

function Obj(x) {
      this.id = x; 
      this.toString = function() {
          return x;
      };
 }
  var arr = [new Obj(1), new Obj(2), new Obj(3)];
  console.log(arr[arr.join(',').indexOf('2')-1]); // искомый объект. Тут хорошо бы еще проверку, хотя все равно вернет undefined


Часовой пояс GMT +3, время: 19:55.