2012-07-01 5 views
-6

내가 이런 구조가 값 : JQuery와 기능은

var var1 = { 
    array1 : ['value1','value2', ...], 
    array2 : ['value3','value4', ...] 
    ... 
}; 

내가이 구조에서 값을 검색하는 자바 스크립트 기능을 필요를하고있는 경우, 이 함수는 배열의 이름을 반환합니다. [당신이 시도 무엇?]

+2

(http://www.whathaveyoutried.com) – Daedalus

+2

뿐만 아니라 당신은 전혀 연구 노력을 보여주지 않는, 당신의 질문 ISN 충분히 클리어. – gdoron

+1

젠장! 나는 많은 것에 도전한다! 나는이 질문에 대한 답을 썼다 ... – gdoron

답변

0
function find(value, obj) { 
    for (var x in obj) { 
     if ($.inArray(value, obj[x]) >= 0) { 
      return (x); 
     } 
    } 
} 

var var1 = { 
    array1: ['value1', 'value2'], 
    array2: ['value3', 'value4'], 
    array3: ['value5', 'value6'] 
}; 

var value = 'value3'; 

alert(find(value, var1));​ ​ 

Live DEMO

+0

gdoron, 좋은 직업 남자! – rabugento

+0

@rabugento. 감사. – gdoron

+0

gdoron, jslint는 2 행에 오류를 표시합니다. 현재이 문제를 해결하려고합니다. 대단히 감사합니다. – rabugento

0
var var1 = { 
    array1: ['value1', 'value2'], 
    array2: ['value3', 'value4'] 
}; 

function search(obj, val) { 

    var arr, 
     name; 

    for (var i in obj) { 

     if (typeof obj[i] === "object" && obj[i] instanceof Array) { 

      arr = obj[i]; 

      arr.forEach(function(a) { 

       if (a === val) name = i; 

      }); 

     } 

    } 

    return name; 

} 

search(var1, 'value4'); // array2 
+0

코드가 작동합니다. 감사합니다! – rabugento

+0

수표가 효과가 있으면 클릭하십시오. 나는 그것이 도움이 되었기 때문에 기쁘다! – 0x499602D2