2010-12-26 2 views
1

mootools를 배우고 있습니다. 다음과 같은 형식의 배열이 있습니다. for 루프에서 트래버스하고 싶지만 어떻게 해야할지 모릅니다.Mootools : mootools의 다음 배열을 트래버스하고 싶습니다.

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

다른 모듈에서 배열의 구조를 얻는 중입니다. 구조가 변경되지 않습니다.

답변

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); 
    } 
} 
당신이 돈 때문에
2

Mootools의이뿐만 아니라 이것에 대한 기능을 가지고있다 '

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

이 문서를 참조하십시오 : t 자신을 확인 hasOwnProperty를 사용할 필요가 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

그러나 다른 답변에서 언급 한 바와 같이, 당신은

+0

나는이 코드를 사용하려고 일반 자바 스크립트에서 배열 객체에 대한 for (var key in obj){} 루프 및 for (var i = 0, l = arr.length; i < l; i++){} 루프가이 작업을 수행 할 수 내 구조는 있지만 결과는 얻을 수 없습니다. Object.each ({ 'prize': 10, 'color': 'Red'}, function (value, key) { // 당신이하고 싶은 것 }); – Vin

+0

+1 @arian. @ 조니 : 아마도 mootools의 이전 버전을 사용하고있을 것입니다. try'obj.each (function (el) {console.log (el);});' –