请解释下面的代码

时间:2010-12-24 03:12:56

标签: jquery foreach

var anArray = ['one','two','three'];
$.each(anArray,function(n,value) {
//do something here
});
var anObject = {one:1, two:2, three:3};
$.each(anObject,function(name,value) {
//do something here
});

这里我们没有在第一个函数的任何地方声明n 在下一个函数中,这里的名称和价值是什么意思 三江源

3 个答案:

答案 0 :(得分:1)

请参阅Jquery每个函数引用 http://api.jquery.com/jQuery.each/

它将为数组的每个元素调用一个回调函数,值将按如下方式传递:

name  : Index in Array
value : Current Value of the element

nName相同,只是变量名称已更改。

答案 1 :(得分:1)

$.each()中,n(第一个参数)是Array的当前迭代的索引号(或Object的键名),以及value(第二个参数) )是当前索引处项目的值。

它们作为参数传递给您传递给$.each()的函数。

因此,给定数组,循环中的每次迭代都如下所示:

n == 0, value == 'one'
n == 1, value == 'two'
n == 2, value == 'three'

对于Object,它将是:

name == 'one', value == 1
name == 'two', value == 2
name == 'three', value == 3

测试它的简单方法是将变量记录到控制台。

取代:

// do something here

有:

console.log( n, value );    // for the Array
console.log( name, value ); // for the Object
  

“这里我们没有在任何地方声明n ......”

它们实际上被声明为函数的形式参数。因此,它们将是该特定函数调用的局部变量。

答案 2 :(得分:1)

jQuery.each( collection, callback(indexInArray, valueOfElement) )

这里,n是在回调处理anArray的每个元素(或anObject的每个属性的名称)时传递的数组中的索引。阅读http://api.jquery.com/jQuery.each/