توضح هذه المقالة طريقة JavaScript لمقارنة ما إذا كان كائنين متساوون. شاركه للرجوع إليه. التفاصيل كما يلي:
في Python ، يمكنك استخدام الدالة المدمجة CMP () لمقارنة ما إذا كانت البيانات الموجودة في كائنين متساوية (المصفوفات ، التسلسلات ، القواميس). ومع ذلك ، لا يوجد تنفيذ ذي صلة بلغة JavaScript. يحكم رمز JS هذا ما إذا كان الشخصان متساويان من خلال مقارنة جوانب مختلفة من كائن JS.
cmp = function (x ، y) {// إذا كان كلا x و y لا ، أو غير محددين ، تمامًا إذا كان (x === y) {return true ؛ } // إذا لم تكن متساوية تمامًا ، فيجب أن يكون كلاهما كائنًا إذا (! } // يجب أن يكون لديهم نفس سلسلة النموذج الأولي ، والأقرب الذي يمكننا القيام به هو // اختبار المُنشئ. if (x.constructor! == y.constructor) {return false ؛ } لـ (var p in x) {// تم اختبار الخصائص الموروثة باستخدام x.constructor === y.constructor if (x.hasownproperty (p)) {// يسمح بمقارنة x [p] و y [p] عند التعيين إلى if غير محدد إذا (! y.hasownproperty (p)) } // إذا كان لديهم نفس القيمة الصارمة أو الهوية ، فهي متساوية إذا (x [p] === y [p]) {متابعة ؛ } // الأرقام والسلاسل والوظائف ، يجب أن تكون المنطقية متساوية تمامًا إذا (typeof (x [p])! == "Object") {return false ؛ } // الكائنات والمصفوفات يجب اختبارها بشكل متكرر إذا (! object.equals (x [p] ، y [p])) {return false ؛ }}} لـ (p in y) {// يسمح بالتعيين x [p] على غير محدد إذا (y.hasownproperty (p) &&! x.hasownproperty (p)) {return false ؛ }} إرجاع صحيح ؛ } ؛يستخدم:
obja = {a: '123' ، b: '456'} ؛ objb = {a: '123' ، b: '000'} ؛ var isequal = cmp (obja ، objb) ؛ console.log (isequal) ؛ // خطأ مختلفآمل أن تكون هذه المقالة مفيدة لبرمجة JavaScript للجميع.