Javascript 多维数组对象分配
到目前为止,我正在尝试创建一个二维JSON数组,以在一系列“框架”中保存一系列形状。到目前为止,我还以为我拥有它,但我只能将形状推到Javascript 多维数组对象分配,javascript,object,multidimensional-array,Javascript,Object,Multidimensional Array,到目前为止,我正在尝试创建一个二维JSON数组,以在一系列“框架”中保存一系列形状。到目前为止,我还以为我拥有它,但我只能将形状推到帧[0];当我通过它时,frame[1]我得到错误uncaughttypeerror:无法读取未定义的属性“shape” 为什么我的浏览器不能将帧[1]识别为帧阵列的下一个潜在存储区域?这与我初始化JSON数组的方式有关吗 有关守则: function Obj(type, x, y, w, h, r) { "use strict"; this.type = type
帧[0]
;当我通过它时,frame[1]
我得到错误uncaughttypeerror:无法读取未定义的属性“shape”
为什么我的浏览器不能将帧[1]
识别为帧
阵列的下一个潜在存储区域?这与我初始化JSON数组的方式有关吗
有关守则:
function Obj(type, x, y, w, h, r) {
"use strict";
this.type = type || null; //rect, crcl, line, text
this.x = x || null;
this.y = y || null;
this.w = w || null; //used for rect, line
this.h = h || null; //used for rect, line
this.r = r || null; //used only for crcl
}
var keyframes = {
'frame': [{
'shape': []
}]
};
var shape1 = new Obj('rect', 20, 20, 20, 20, 0);
var shape2 = new Obj('crcl', 20, 20, 0, 0, 20);
keyframes.frame[0].shape.push(shape1);
keyframes.frame[1].shape.push(shape2);
它确实将
frame[1]
识别为放置某物的潜在位置,但您没有将任何东西放在那里。您的代码期望frame[1]
是对对象的引用,但您仅以这种方式初始化第一个元素
keyframes.frame[1] = { shape: [] };
将初始化下一个元素。如果没有初始化,
keyframe.frame[1]
是未定义的
它确实会将frame[1]
识别为放置某些内容的潜在位置,但您没有将任何内容放在那里。您的代码期望frame[1]
是对对象的引用,但您仅以这种方式初始化第一个元素
keyframes.frame[1] = { shape: [] };
将初始化下一个元素。如果没有该初始化,关键帧。帧[1]
是未定义的
问题:
关键帧的初始化如下所示:
- 物件
- 包含一个1元素数组“frame”
- “frame”包含一个对象
- 创建关键帧。帧[1]元素
- keyframe.push({shape:[]})//现在关键帧。帧[1]已存在
- 按之前的尝试将形状2推送到上面添加的对象
- keyframes.frame[1].shape.push(shape2)//这现在应该是有效的
- 物件
- 包含一个1元素数组“frame”
- “frame”包含一个对象
- 创建关键帧。帧[1]元素
- keyframe.push({shape:[]})//现在关键帧。帧[1]已存在
- 按之前的尝试将形状2推送到上面添加的对象
- keyframes.frame[1].shape.push(shape2)//这现在应该是有效的