【问题标题】:Mootools : I want to traverse following array in mootoolsMootools:我想遍历 mootools 中的以下数组
【发布时间】:2010-12-26 20:47:10
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript mootools associative-array


    【解决方案1】:

    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 字面量。

    对于数组,您可以使用 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){} 循环对象和 for (var i = 0, l = arr.length; i < l; i++){}loops 纯 JavaScript 中的数组来做到这一点

    【讨论】:

    • 我尝试将此代码与我的结构一起使用,但无法获得任何结果:Object.each({ 'prize' : 10 , 'color' : 'Red' }, function(value, key){ // 你喜欢做什么。});
    • +1 @arian。 @Johny:那么您可能正在使用旧版本的 mootools。试试obj.each(function(el) { console.log(el); });
    【解决方案2】:

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

    示例: 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 );
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-14
      • 2012-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多