Какой из следующих двух сценариев работает лучше и чувствует себя более естественно для LANGAUGE:Javascript три одномерные массивы против литерал объекта
Использование Object буквальное:
var object = { 'key1': [e1, e2, e3, e4, .., en], 'key2': [e1, e2, e3, e4, .., en], 'key3': [e1, e2, e3, e4, .., en], ..., 'keyn': [e1, e2, e3, e4, .., en] }
Используя 2 одномерный массив (с уникальным 1-м элементом на втором измерении)
var array = [ ['key1', [e1, e2, e3, e4, .., en], ['key2', [e1, e2, e3, e4, .., en], ['key3', [e1, e2, e3, e4, .., en], ..., ['keyn', [e1, e2, e3, e4, .., en] ];
Если основной целью структуры данных является чистая итерация по ключевым словам1, key2, key3, .., keyn и выполнение некоторых действий для каждого e1, e2, e3, .., en.
Примечание: не обязательно, если это уместно, но эти 2 структуры не определены как есть во время инициализации. object[key] = [e1, ..];
и array.push([key, [e1, ..]);
используются по всей системе до начала итерации и обработки.
Edit: На протяжении всего приложения, я буду нуждаться получить доступ к массиву ([e1, e2, .., en]
), чтобы подтолкнуть больше элементов к нему. Разумеется, мне нужно будет выполнить строковый ключ.
Итак, я думаю, что есть две части, добавляя элементы и итерации по ним.
Вопрос в том, нужен ли вам доступ к элементам с помощью строкового ключа или нет. Массивы и хеш-таблицы имеют различную алгоритмическую сложность для разных задач, одна из них не «быстрее» или «более естественна», в общем, чем другая. Основываясь на вашем описании, я бы пошел с массивами. –
Производительность разумная для известных ключей, я бы взял объектную версию. если вам нужно выполнить итерацию по всем элементам, а затем взять версию массива. –
@NinaScholz Они прямо заявили * «Основная цель структуры данных - чистая итерация по ключевым словам1, key2, key3, .., keyn и выполнение некоторых действий для каждого e1, e2, e3, .., en." *. Поэтому они могут захотеть пойти с версией массива, но разница между ними довольно мала. Этот вопрос больше основан на мнениях. –