Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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_Object - Fatal编程技术网

Javascript 深层对象文字的速记?

Javascript 深层对象文字的速记?,javascript,object,Javascript,Object,我正在使用一个滑块生成器,它有大约10个级别的对象和数组来存储所有数据。。前4个基本上都是相同的结构,但在不同的数组中。例如: Slides[thisSlide].layers[thisLayer].animationgroup[thisAnimationId].sequence[currentSegment].duration 在任何给定的时间,我都可能在同一张幻灯片、同一层上工作,所以我想我可以声明一些变量,例如: var currentSlide = 0; var currentLaye

我正在使用一个滑块生成器,它有大约10个级别的对象和数组来存储所有数据。。前4个基本上都是相同的结构,但在不同的数组中。例如:

Slides[thisSlide].layers[thisLayer].animationgroup[thisAnimationId].sequence[currentSegment].duration
在任何给定的时间,我都可能在同一张幻灯片、同一层上工作,所以我想我可以声明一些变量,例如:

var currentSlide = 0;
var currentLayer = 0;
var currentChild = "0";
var currentKeyframe = "";
    Slides.push({
    "background-color": "#aaaaaa",
    "canvasHeight": "200",
    "canvasWidth": "1000",
    "layers": []
    });
var CSL = Slides[currentSlide].layers[currentLayer];
var CAG = Slides[thisSlide].layers[thisLayer].animationgroup[thisAnimationId];
在应用程序开始时,可以用以下方法简写第一个示例:

CAG.sequence[currentSegment].duration;
它没有像我预期的那样工作。后来当我尝试使用它时,我收到一个投诉,说CSL没有定义,但它应该在全球范围内:

function updateStuff(){
    for (i = 0; i < CSL.length; i++) {
        //do something
    }
}
函数updateStuff(){
对于(i=0;i
我只是想在编写代码的同时将代码缩短一点,并删除一些不需要的内容。

在这里的示例中:

var currentSlide = 0;
var currentLayer = 0;
var currentChild = "0";
var currentKeyframe = "";
    Slides.push({
    "background-color": "#aaaaaa",
    "canvasHeight": "200",
    "canvasWidth": "1000",
    "layers": []
    });
var CSL = Slides[currentSlide].layers[currentLayer];
看起来
数组是空的,因此在这种情况下,索引到
数组将返回未定义到
CSL


请注意,如果当时定义了一个对象,您确实会得到该对象的引用,但如果没有定义,则
CSL
将被指定为“值类型”
undefined
,没有引用。

假设对象存在于所有这些层,我看不出您发布的符号有任何问题。您应该能够使用这些缩写。这应该是有效的,直到您没有对语句中用作索引的变量进行闭包。这也是我所想的,我对它进行了更新,以显示问题所在。CSL似乎指向数组中没有长度的对象。这就是你的问题吗?我包含的只是变量声明,初始化后,数组中有信息。如果我将变量声明放在函数中,它可以正常工作,但出于某种原因,它不喜欢在全局范围中使用它。我认为这可能与操作顺序有关。在将信息推送到Slides对象之前,它可能会尝试将所有变量加载到内存中。当它这样做时,Slides[0]对象中根本没有任何内容,因此它会失败。我正在研究如何在用户交互之后通过更新来解决这个问题。