Создание нескольких индексов с одинаковым значением - сокращение - PullRequest
0 голосов
/ 08 февраля 2012

Я ищу способ минимизировать создание массива, в котором все индексы имели бы одинаковое значение.Это может быть невозможно, но я считаю, что это очень удобно.

Рассмотрим:

var layer = [];
layer['game'] = new Kinetic.Layer();
layer['navigation'] = new Kinetic.Layer();
layer['notification'] = new Kinetic.Layer();

(где Kinetic.Layer - объект, однако я подозреваю, что это не имеет значения)

Ищете что-то вроде:

var layer['game','navigation','notification'] = new Kinetic.Layer();

Возможно ли это вообще?Это, конечно, действительно не нужно - но я считаю, что это очень удобно, повторять код - плохая практика.

И нет, у меня не может быть ни одного индекса или переменной, как у этих объектовпозже изменится в моем коде - и они должны быть объявлены перед использованием.

Ответы [ 2 ]

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

В этом случае сокращение НЕ будет одинаковым, так как все три будут указывать на один и тот же Kinetic.Layer вместо трех разных слоев.

Так что, в вашем случае, НЕ пытайтесь сокращенно.

Однако в целом вы можете присвоить одно и то же значение нескольким переменным, например так:

layer['game'] = layer['navigation'] = layer['notification'] = value;

Примечание: вы используете объект массива [], а затем назначаете строковые ключи - это не совсем правильно, и вы должны использовать вместо него универсальный объект {}.

0 голосов
/ 08 февраля 2012

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

var layer = [];
layer['game'] = layer['navigation'] = layer['notification'] = new Kinetic.Layer();
...