2012-05-27 92 views
-1

对不起,我是新来的,我的代码可能无法正确显示...迭代通过文件找到阵列

我怎么会通过文件迭代,以找到。每个阵列()?

我的想法是这样的:

//-----START OF CODE----\\ 
var a = new Array("a0", "a1", "a3"); 
var b = new Array("b0", "b1", "b3"); 
var i = 0; 

function CountArrays() 
{  
    $('Array').each(function(){ 

     i++;    
    }); 
    alert("There are " + i + " arrays in this document!"); 
} 

CountArrays(); 
//-----END OF CODE----\\ 

但是$(“阵”)似乎并不喜欢的方式去,因为我没有收到警报!

感谢您的帮助! :)

+0

首先,你正在循环提醒,这是一个坏主意。 – Norse

+0

你在寻找窗口对象(全局命名空间)中的所有数组吗? – hamczu

+0

哎呀抱歉,这不是我的意思!我编辑它!并且是hamczu – user1420563

回答

1

不,不。这不起作用。请熟悉jQuery库。

$('foo'); 

$()功能节选一个CSS选择器作为参数,并返回一个jQuery对象,你不能把刚刚变量进去。你的Javascript和你的HTML是两回事。

如果你想数组遍历在代码中使用下列内容:

var a = ["Hello","World"]; 
for (var i = 0; i < a.length; i++) { 
    alert(a[i]); 
} 

有很多方法可以遍历一个数组,看this的参考。

第二:如提到使用alert()进行调试不是一个好主意,特别是在循环时。 当您使用Chrome或Firefox时,请使用console.log('string', variable)。它将您的变量直接写入控制台,并且还记录了alert()不可能的完整对象。

更新后的评论:这是不可能遍历JavaScript中的所有现有数组。那是因为你不能列出所有现有的变量。一个问题是,你用每个新功能创建一个新的范围。

函数内部的变量不知道外面的变量。因此,例如这是代码的一个有效部分:

var a = 5; 

function foo() { 
    var a = 6; 

    return a; 
} 

console.log(a); // prints "5" 
console.log(foo()); // prints "6" 

两个变量被称为a,但它们包含不同的数据。 欲了解更多信息,请参阅此答案:https://stackoverflow.com/a/2051693/735226

只是为什么你甚至想知道你的脚本中有多少个数组?并且因为对象可以包含像这样的数组

var objWithArray = { 
    foo:5, 
    bar:[3, 4, 5, 6, 7] // objWithArray.bar would be an array 
}; 

没有办法获取所有数组。 Javascript是一种无类型和可变的语言。

+0

感谢您的回答!的确,我是jQuery的新手,我正在尝试学习库,但是我想要做的不是遍历数组!我想知道我的文档中有多少个数组:p我该怎么做? – user1420563

+0

这是正确的答案不是我的。 – Sajmon

+0

我不一定想知道我有多少人,我只是想在.each()中做一些事情,警报只是为了知道它是否工作! btw在我的例子中它应该返回2,因为有2个数组(a和b)。所以这是不可能的? :( – user1420563