Как получить элемент объекта в nodejs?

Есть очень большой объект. Ключи его элементов не известны. Необходимо максимально эффективно (по времени) получить один ключ любого его элемента. Как лучше это сделать?
  • Вопрос задан
  • 2611 просмотров
Решения вопроса 1
MarcusAurelius
@MarcusAurelius Куратор тега Node.js
автор Impress Application Server для Node.js
Тут не важно, нода или не нода.
Есть два варианта:
1. Перебором.
2. Построить обратный индекс, где ключи и значения поменять местами.
Может быть случай, когда несколько ключей имеют одинаковые значения, поэтому нужно держать для каждого элемента индекса массив ключей.
var data = {
	key1: "value1",
	key2: "value2",
	key3: "value1",
	key4: "value2",
	key5: "value3"
};
var index = {};
for (var key in data) {
	var value = data[key];
	if (index[value]) index[value].push(key);
	else index[value] = [key];
}
console.dir(index);

Вывод:
{ value1: [ 'key1', 'key3' ],
  value2: [ 'key2', 'key4' ],
  value3: [ 'key5' ] }

Конечно, индекс нужно перестраивать при изменении исходного объекта.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы