Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建具有相同值的多个索引-速记_Javascript_Arrays_Shorthand - Fatal编程技术网

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

Javascript 创建具有相同值的多个索引-速记,javascript,arrays,shorthand,Javascript,Arrays,Shorthand,我正在寻找一种方法来最小化所有索引都具有相同值的数组的创建。这可能不可能,但我会发现它非常方便 考虑: var layer = []; layer['game'] = new Kinetic.Layer(); layer['navigation'] = new Kinetic.Layer(); layer['notification'] = new Kinetic.Layer(); (其中动能层是一个对象,但我怀疑它并不重要) 寻找类似于: var layer['game','navigati

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

考虑:

var layer = [];
layer['game'] = new Kinetic.Layer();
layer['navigation'] = new Kinetic.Layer();
layer['notification'] = new Kinetic.Layer();
(其中动能层是一个对象,但我怀疑它并不重要)

寻找类似于:

var layer['game','navigation','notification'] = new Kinetic.Layer();
这可能吗?当然,它并不是真正需要的——但我会发现它非常方便,重复代码是一种不好的做法


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

我非常确定这应该可以工作,我记不起在哪里见过它,但我看到它在某处游荡

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

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

因此,在你的情况下,不要尝试速记

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

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

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

Hmm,仔细想想,这是有道理的。您是否介意提供一个正确用法的基本示例(即在旁注上)?谢谢你的回复!基本上,任何变量都可以一次安全地分配给多个变量。复合值(如数组和更一般的任何类型的对象)不能,除非对该对象有多个引用是理想的效果(例如,
otherobj.linktovalue=thisobj.value=[1,2,3];
)。