Лучший способ создания множества массивов? - PullRequest
0 голосов
/ 22 февраля 2012

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

У меня есть плагин, который имеет много опций.Пользователь может вводить параметры в следующем формате:

speed: "in,out > in,out > in,out"

Каждая группа параметров «in, out» применяется к анимируемому HTML-элементу, разделенному знаком «>».Выше указана скорость включения / выключения анимации для 3 различных объектов.Теперь все отлично работает во всех браузерах, но мне пришлось создать массу массивов для обработки всех настроек.По сути, есть массив, который содержит все настройки speed_in (object1, object2, object3), speed_out, effect_in и т. Д. *

По сути, у меня есть блок кода, который представляет собой не что иное, как создание массивов для этих наборов.Примерно так:

var speed_in_set = [], speed_out_set = [], effect_in_set = [], effect_out_set = [] ....

Имена массивов основаны на исходных именах настроек по умолчанию:

speed: ... effect: ...

Моя лучшая догадка, чтобы сделать это более эффективным, - перебирать ключ по умолчаниюИмена и добавьте _on_set и _off_set, чтобы создать новый массив для каждого, но не знаю, как это сделать, и если мне даже нужно беспокоиться о слишком много массивов.Спасибо!

1 Ответ

2 голосов
/ 22 февраля 2012

JSON - превосходный метод для сложных структур массивов, особенно для пар значение / имя. Широко используется и быстро.

РЕДАКТИРОВАТЬ: пример.

Вы можете добавить больше свойств, добавив больше элементов вместо создания нового массива. Сделайте поиск по JSON на этом сайте, и вы получите прекрасные примеры. У меня есть один набор данных под названием «данные», но вы можете добавить другие для других целей, все в объекте JSON. Это действительно похоже на небольшую базу данных.

<script type='text/javascript'>
var myData = {"data":[
     {'speed_in_set':10,'speed_out_set':5,'effect_in_set':15,'effect_out_set':200.1},
     {'speed_in_set':15,'speed_out_set':5,'effect_in_set':15,'effect_out_set':200.1, 'color':'red'}
     ]
}    

alert(myData.data[0].speed_in_set)
alert(myData.data[1].speed_in_set) 
alert(myData.data[1].color)   
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...