创建具有相同值的多个索引 - 速记

时间:2012-02-07 22:04:29

标签: javascript arrays shorthand

我正在寻找一种方法来最小化数组的创建,其中所有索引都具有相同的值。这可能是不可能的,但我觉得它非常方便。

考虑:

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();

这甚至可能吗?当然,它并不是真正需要的 - 但我发现它非常方便,重复代码有点不好。

不,我不能拥有一个索引或变量,因为theese对象将在我的代码中稍后更改 - 并且必须在使用前声明它们。

2 个答案:

答案 0 :(得分:2)

在这种情况下,速记不会相同,因为所有三个都指向相同的Kinetic.Layer,而不是有三个不同的层。

所以,在你的情况下,不要尝试速记。

但是一般情况下,您可以为多个变量分配相同的值,如下所示:

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

旁注:您正在使用数组对象[]然后分配字符串键 - 这不是严格正确的,您应该使用通用对象{}

答案 1 :(得分:0)

我很确定这应该有用,不记得我在哪里见过它但我已经看到它在某个地方踢了。

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