如果在object中找到,请在jQuery中使用另一个属性

时间:2011-09-20 08:46:57

标签: javascript jquery object

我有这个对象:

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;
        };

所以我传递了我正在寻找的网址和我正在查找的对象。然后我可以var found = inURLArray('http://google.com', tabArray);如果我找到了我想要获取内容的网址,我该怎么办?在同一个对象中。该数组称为tabArray。我正在使用jQuery / Javascript!

我应该说,我真的不介意我如何访问内容,即。如果它存储在变量中或提醒!

2 个答案:

答案 0 :(得分:3)

您可以将布尔函数替换为仅返回找到的对象的布尔函数,如果没有布尔函数,则替换为null:

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

答案 1 :(得分:0)

试试这个;

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;
};