Если найдено в объекте, используйте другое свойство в jQuery - PullRequest
1 голос
/ 20 сентября 2011

У меня есть этот объект:

Object ->

Content: <h1>some html</h1>
Url : A url

Теперь я использую этот код, чтобы определить, существует ли определенный URL в текущем объекте:

var inURLArray = function(url, array) {
        for(var i in array) {
            if(array[i].url && array[i].url == url)
                return true;
            }
                return false;
        };

Итак, я передаю URL-адрес, который я ищу, и объект, который я ищу. Затем я могу сделать var found = inURLArray('http://google.com', tabArray); что я могу сделать, если я найду URL-адрес, который я ищу, чтобы получить контент в тот же объект. Массив называется tabArray. Я использую jQuery / Javascript!

Должен сказать, я не против того, как получить доступ к контенту, т.е. если он хранится в переменной или предупрежден!

Ответы [ 2 ]

3 голосов
/ 20 сентября 2011

Вы можете заменить логическую функцию на функцию, которая просто возвращает найденный объект, или ноль, если ее нет:

var findInArrayByUrl = function(url, array) 
{
    for(var i in array) 
    {
        if(array[i].url && array[i].url == url)
        {
            return array[i];
        }
    }
    return null;
};
0 голосов
/ 20 сентября 2011

Попробуйте это;

function getObjectInArrayByUrl (url, arr) {
    var i
        , obj
        , arrLength = arr.length;

    // loop the array
    for (i = 0; i < arrLength; i++) {
        // store the object in a var to save lookups
        obj = arr[i];

        // if obj.url isn't present or doesn't match, skip
        if (!('url' in obj) || obj.url != url) {
            continue;
        }

        // otherwise return the matching object
        return obj;
    }

    // otherwise return fail
    return null;
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...