Contoh dalam artikel ini menerangkan kaedah membandingkan dua objek untuk kesamaan dalam JavaScript. Kongsikan dengan semua orang untuk rujukan anda. Butirannya adalah seperti berikut:
Dalam Python, anda boleh menggunakan fungsi terbina dalam cmp() untuk membandingkan sama ada data yang terkandung dalam dua objek adalah sama (tatasusunan, jujukan, kamus). Tetapi tiada pelaksanaan yang berkaitan dalam bahasa JavaScript. Kod js ini membandingkan objek js dalam pelbagai aspek untuk menentukan sama ada dua objek adalah sama
cmp = function( x, y ) { // If both x and y are null or undefined and exactly the same if ( x === y ) { return true; } // If they are not strictly equal, they both need to be Objects if ( ! ( x instanceof Object ) || ! ( y instanceof Object ) ) { return false; } //They must have the exact same prototype chain,the closest we can do is //test the constructor. if ( x.constructor !== y.constructor ) { return false; } for ( var p in x ) { //Inherited properties were tested using x.constructor === y.constructor if ( x.hasOwnProperty( p ) ) { // Allows comparing x[ p ] and y[ p ] when set to undefined if ( ! y.hasOwnProperty( p ) ) { return false; } // If they have the same strict value or identity then they are equal if ( x[ p ] === y[ p ] ) { continue; } // Numbers, Strings, Functions, Booleans must be strictly equal if ( typeof( x[ p ] ) !== "object" ) { return false; } // Objects and Arrays must be tested recursively if ( ! Object.equals( x[ p ], y[ p ] ) ) { return false; } } } for ( p in y ) { // allows x[ p ] to be set to undefined if ( y.hasOwnProperty( p ) && ! x.hasOwnProperty( p ) ) { return false; } } return true; };
Gunakan:
objA={ a:'123', b:'456' }; objB={ a:'123', b:'000' }; var isEqual= cmp(objA, objB); console.log(isEqual); // false 不相同
Saya harap artikel ini akan membantu reka bentuk pengaturcaraan JavaScript semua orang.