gpt4 book ai didi

javascript - javascript中数组长度返回0

转载 作者:行者123 更新时间:2023-11-28 00:25:22 27 4
gpt4 key购买 nike

我在这里遇到了非常奇怪的 javascript 行为,所以我想与您分享,也许有人可以解释一下。

我有一个 xml 文件,看起来像这样(它有 15 个元素,但我只粘贴 2 个):

    <activity>
<title>
1. row
</title>
<image>
"/images/back.jpg"
</image>
<image>
"/images/back1.jpg"
</image>
<image>
"/images/bg.jpg"
</image>
<paragraph>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
</paragraph>
</activity>
<activity>
<title>
2. row
</title>
<image>
"/images/back.jpg"
</image>
<image>
"/images/back1.jpg"
</image>
<image>
"/images/bg.jpg"
</image>
<paragraph>
Fusce quam eros, imperdiet a purus id, ullamcorper iaculis est. Maecenas mi nisl, elementum sed ligula et
</paragraph>
</activity>

我用 jquery 解析它,如下所示(我将编写所有源代码。):

`

    var activities=[];

$.ajax({
type: "GET", url: "activities.xml",dataType: "xml", success: function(xml){
$(xml).find('activity').each(function(){

var title = $(this).find('title').text();
var paragraph = $(this).find('paragraph').text();

var images = [];

$(this).find('image').each(function(){
images.push($(this).text());
});
activities.push({
"title": title,
"paragraph": paragraph,
"images": images
});
alert(activities.length); // this is where i want to alert size of array (for debugging purposes)
});

},
error: function() { alert("Error."); }
});

alert(activities.length); // this line prints out size of same array at the end of each loop

`

所以我的输出是:1,2,3,4, ..... 14,15,0!数组的大小在循环中如何增加以及循环结束时其大小为 0?

编辑:我在 jsfiddle 上验证了代码并且没问题。

最佳答案

这真的很有趣。

系统中有两个警报,一个在回调中,另一个在底部。

发生的情况是,GET 启动,然后调用底部的警报,当前正确的长度为 0。

然后GET完成,数组被放大,回调中的alert被调用。

现在我本以为警报需要按照它们被调用的顺序执行,但是..显然不是。第二个警报首先执行。

如果需要,您可以检查此项,但将警报更改为 alert("Inside " + activities.length)alert("Outside " + activities.length)

关于javascript - javascript中数组长度返回0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29571475/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com