Что лучше для производительности - есть функция поиска, которая находит объект в массиве с определенным идентификатором или просто используется для цикла с отверстиями в массиве?Функция поиска или для цикла?
В моей ситуации у меня есть массив игроков, который является динамическим. Скажем, 3-х игроки соединены таким образом мой массив будет выглядеть следующим образом:
players = [player1, player2, player3]
Было бы легко держать ключ массива в качестве игрока ID, так что я знал бы, что игрок с ID 2 является третьим в игроках массива и для того, чтобы доступ к ним, я просто нужно использовать: players[2]
, но как второй игрок уходит, он создает отверстие массива:
players = [player1,,player3]
И, как я понимаю, это отверстие снижает производительность, используя массив, так как я использую для в цикле много, было бы лучше иметь массив игровых объектов, и вместо того, чтобы оставлять отверстия в массиве, я просто сращиваю отверстие? Но таким образом я не смог бы сохранить ключ массива в качестве идентификатора игрока, поэтому мне пришлось бы использовать функцию поиска ID. Итак, в конце концов, какой из этих двух вариантов лучше для производительности? Или есть еще лучший способ решить эту проблему?
Спасибо!
Для массива из 2 (или 200 или 2000) элементов это не имеет большого значения. – zerkms
Почему бы не использовать объекты javascript {}, где ключи свойств являются идентификаторами игрока –
«Программисты тратят огромное количество времени на размышления о скорости некритических частей своих программ или беспокоиться о них, и эти попытки эффективности действительно имеют сильный отрицательный результат влияние на отладку и обслуживание. Мы должны забыть о небольшой эффективности, скажем, около 97% времени: преждевременная оптимизация - это корень всего зла, но мы не должны упускать наши возможности в этих критических 3% »Дональд Кнут –