Hirdetés

Új hozzászólás Aktív témák

  • Jim-Y

    veterán

    var myobj1 = {
    name: "obj1",
    author: "author1"
    }

    var myobj2 = {};


    var anarray = [];
    anarray.push(myobj1);

    if ( !Array.prototype.contains ) {
    Array.prototype.contains = function(obj) {
    for(var i=0;i<this.length;++i){
    if(this[i] === obj){
    return true;
    }
    }
    return false;
    }
    }
    var myotherobj = myobj1;
    console.log(anarray.contains(myobj1)); //true
    console.log(anarray.contains(myotherobj)); // true
    console.log(anarray.contains(myobj2)); //false

    sajnos ez még nem olyan jó, mert ha új attribútumot adunk pl myotherobj-nek akkor is igazzal tér vissza, gondolom referenciákat néz a === objektumok esetén és típust.

    Szerintem a jó megoldás az lenne, ha összevetné az ember a típusokat, objektumok számát, értékét, esetleg a prototype chain egyezőséget is vizsgálna.

    Vagy ahogy martonx is írta már alapból felkészítjük az objektumokat egy id-vel.

    [ Szerkesztve ]

Új hozzászólás Aktív témák