Перебор объекта (массива) с помощью jQuery.each

Рейтинг: 1Ответов: 1Опубликовано: 29.10.2014

Добрый день!
Пишу велосипед по работе с торговыми предложениями (ТП) 1С Битрикс.
Предварительно подготовил небольшой массив, содержащий ID свойств ТП и их значения и ID самих торговых предложений. Значения и идентификаторы значений вынес в карточку товара в виде замороченных выпадающих списков. В момент выбора свойства (т.е. по событию Click()) запускается функция, с которой я никак не могу совладать.

Вначале она в цикле считывает значения свойств и записывает их в отдельные переменные.

$(".catalog_items_filter_dropdown").each(function(){
            if($(this).attr("prop_key")=="PROP_44")
                {
                    var PROP_44 = $(this).children(".result").attr("prop_val");
                    console.log("PROP_44: "+PROP_44);
                }

console.log() тут для того, чтобы убедиться, что всё считывается. Затем, когда переменные записаны, я начинаю обход массива (или объекта, не уверен, что это в понятиях JS) SKU_ARRAY вот таким образом:

$.each(SKU_ARRAY, function(key, val) {...

В теле функции я обращаюсь к некоторым полям SKU_ARRAY и сравниваю их со значениями ранее полученных свойств (это в теории). Вот затык в том, что я не могу передать туда значения свойств, полученных до цикла each(). По идее, нужно написать отдельную функцию типа:

var getSkuID = function(key, val, color, size) {...

Но мне непонятно, можно будет её запустить потом вот так:

    $.each(SKU_ARRAY, getSkuID(key, val, PROP_43, PROP_44) {...

И как при описании getSkuID() в теле функции обращаться в SKU_ARRAY? Я бы чего-нибудь почитал по этому поводу, но даже не пойму, куда копать.

Ответы

▲ 2Принят

Почти всё нормально. Только each принимает не вызов функции, а саму функцию. То есть сможете вызвать так:

$.each(SKU_ARRAY, function(key, val){ getSkuID(key, val, PROP_43, PROP_44) {...}})

Обновление

А точно тогда нужен each? Ведь можно и просто циклом по массиву пройтись:

for SKU_ID in SKU_ARRAY
    getSkuID SKU_ID, SKU_ARRAY[SKU_ID], PROP_43, PROP_44