лучший и быстрый способ хранить большое количество данных в объектах JavaScript - PullRequest
0 голосов
/ 30 октября 2019

Мне нужно хранить некоторые данные, имеющие 3 ключа, чтобы однозначно определить каждый элемент. Для текущего примера я использую i , j , z в качестве ключей.

console.time('global1');
var global1 = {};

for (var i = 0; i < 100; ++i) {
  for (var j = 0; j < 100; ++j) {
    for (var z = 0; z < 100; ++z) {
      global1[i] = global1[i] || {};
      global1[i][j] = global1[i][j] || {};
      global1[i][j][z] = global1[i][j][z] = { a: 123456789 };
    }
  }
}

console.timeEnd('global1');

console.time('global2');
var global2 = {};

for (var i = 0; i < 100; ++i) {
  for (var j = 0; j < 100; ++j) {
    for (var z = 0; z < 100; ++z) {
      global2[[i,j,z]] = { a: 123456789 };
    }
  }
}

console.timeEnd('global2');
  1. Почему Chrome делает первый пример действительно намного быстрее, какой тип оптимизации?
  2. Какой лучший способ сохранить эту сумму (или больше?)) данных?

1 Ответ

0 голосов
/ 30 октября 2019

Если вы выполняете разные моменты времени для обоих фрагментов, вы можете понять, что времена довольно схожи, это потому, что вычислительная сложность алгоритма в основном зависит от количества циклов (одинаковых).

Есливам нужно хранить все значения, я не думаю, что есть другой способ сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...