Javascript 跨数组访问对象值

Javascript 跨数组访问对象值,javascript,Javascript,我试图通过数组访问对象值,但每次都显示为未定义。我如何让阵列“地形”使用“污垢”对象变量,如SpawnChance var地形=新阵列(“Dirt1”、“Dirt2”、“Dirt3”); var Dirt1=新对象(); Dirt1.Name='Dirt1'; Dirt1.Level='1'; Dirt1.sprownchance='70'; var Dirt2=新对象(); Dirt2.Name='Dirt2'; Dirt2.Level='1'; Dirt2.sprownchance='15

我试图通过数组访问对象值,但每次都显示为未定义。我如何让阵列“地形”使用“污垢”对象变量,如SpawnChance

var地形=新阵列(“Dirt1”、“Dirt2”、“Dirt3”);
var Dirt1=新对象();
Dirt1.Name='Dirt1';
Dirt1.Level='1';
Dirt1.sprownchance='70';
var Dirt2=新对象();
Dirt2.Name='Dirt2';
Dirt2.Level='1';
Dirt2.sprownchance='15';
var Dirt3=新对象();
Dirt3.Name='Dirt3';
Dirt3.Level='1';
Dirt3.sprownchance='10';
if($(“#启动块”).hasClass(“Dirt1”)){
var blockcount=(数学地板(数学随机()*20)+1)*2;
var blockcount=blockcount*blockcount;
var i=0;
而(i}
您试图访问字符串上的
SpawnChance
方法-例如
“Dirt1”
。您想要对象本身-因此这就是问题的根源:

var terrain = new Array("Dirt1", "Dirt2", "Dirt3");
就这样吧:

var terrain = new Array(Dirt1, Dirt2, Dirt3);
(或者更好的是:

var terrain = [Dirt1, Dirt2, Dirt3]
没有理由使用
数组
构造函数而不是文字形式)


请注意,您必须将其移动到代码中比这些对象的定义更晚的位置。

复合语句中的SyntaxError:missing}
非常奇怪。我不确定
terrain
是否应该是地形类型列表,然后您正在构建一个地图,其中地图中的每个单元都是地形类型之一?因为将一个现有地形元素的副本推送到地形阵列中很奇怪。你能解释一下你的目标吗?我推地形类型是因为地图分片是随机的,基于概率值。目标是根据生成的磁贴的“机会”迭代循环。