2012-07-01 2 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

Смежные вопросы