Mootools:我想在mootools中遍历数组

时间:2010-12-26 20:47:11

标签: javascript mootools associative-array

我正在学习mootools。我有一个以下格式的数组。 我想在for循环中遍历它,但不知道该怎么做。

{'apple' : { 'prize' : 10 , 'color' : 'Red' } ,
'banana' : { 'color' : 'red', 'prize' : 20, 'quantity' : 12 } }

我从另一个模块获得数组的结构,这就是为什么我不能改变它的结构。

2 个答案:

答案 0 :(得分:2)

MooTools也有此功能,因此您无需自己使用hasOwnProperty检查:

Object.each({ 'prize' : 10 , 'color' : 'Red' }, function(value, key){
    // what you like to do.
});

请参阅文档:http://mootools.net/docs/core/Types/Object#Object:Object-each

了解数组和对象之间的区别确实很重要。上面的示例使用了Object literal。

对于数组,您可以使用Array:each。

[1, 2, 3, 4].each(function(value, key){
    // what you like to do.
});

文档:http://mootools.net/docs/core/Types/Array#Array:each

但正如在另一个答案中所提到的,您可以使用for (var key in obj){}循环来执行此操作,并使用纯JavaScript中的数组for (var i = 0, l = arr.length; i < l; i++){}循环

答案 1 :(得分:1)

这些是对象,而不是数组。

示例: http://jsfiddle.net/AkVvY/

var obj = {'apple' : { 'prize' : 10 , 'color' : 'Red' } ,
'banana' : { 'color' : 'red', 'prize' : 20, 'quantity' : 12 } };

for( var name in obj ) {
    alert( name + ': ' + obj[name].color );
}

你不需要一个库。

如果您担心可能会添加Object.prototype,请执行以下操作:

示例: http://jsfiddle.net/AkVvY/1/

for( var name in obj ) {
    if( obj.hasOwnProperty( name ) ) {
        alert( name + ': ' + obj[name].color );
    }
}