Jquery或Javascript检查对象是否存在于Json对象的集合中

Sha*_*eKm 6 javascript jquery jquery-plugins

给出像这样的json字符串:

[{"id":28,"Title":"Sweden"},{"id":56,"Title":"USA"},{"id":89,"Title":"England"}]
Run Code Online (Sandbox Code Playgroud)

我需要检查一个对象是否存在,检查所有字段,意思是:

{"id":28,"Title":"Sweden"} => exists
{"id":29,"Title":"Sweden"} => doesn't exist
Run Code Online (Sandbox Code Playgroud)

要么

{"id":28,"Title":"Sweden"} => exists
{"id":28,"Title":"Sweden2"} => doesn't exist
Run Code Online (Sandbox Code Playgroud)

集合可以包含任意数量的对象,对象将始终具有相同数量的属性(id,title)或(id,title,firstName)等.

另外,为了检查现有对象,是否需要将字符串解析为json对象集合?

我试过这个:

$.map(val, function (obj) {
    if (obj === val)
        alert('in');
    return obj; // or return obj.name, whatever.
});
Run Code Online (Sandbox Code Playgroud)

Man*_*tok 2

也许是这样的?

    function exists(obj, objs)
    {
        var objStr = JSON.stringify(obj);

        for(var i=0;i<objs.length; i++)
        {
            if(JSON.stringify(objs[i]) == objStr)
            {
                return 1;
            }
        }

        return 0;
    }


    /** some tests **/
    var x = [{"id":28,"Title":"Sweden"},{"id":56,"Title":"USA"},{"id":89,"Title":"England"}];
    var has = {"id":28,"Title":"Sweden"};
    var not = {"id":28,"Title":"Sweden2"};

    /* alerts yes */
    if(exists(has, x)) alert('yes');
    else alert('no');

    /* alerts no */
    if(exists(not, x)) alert('yes');
    else alert('no');
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/zdhyf/