В этой статье описывается метод JavaScript, чтобы сравнить, равны ли два объекта. Поделитесь этим для вашей ссылки. Детали следующие:
В Python вы можете использовать встроенную функцию cmp (), чтобы сравнить, равны ли данные в двух объектах (массивы, последовательности, словари). Тем не менее, в языке JavaScript нет соответствующей реализации. Этот код JS судит, являются ли два объекта равны, сравнивая различные аспекты объекта JS.
cmp = function (x, y) {// Если как x, так и y являются нулевыми или неопределенными и точно одинаковы if (x === y) {return true; } // Если они не являются строго равенными, они оба должны быть объектами, если (! (X exanceOf объект) } // Они должны иметь точно такую же прототипную цепь, наиболее близкая, которую мы можем сделать, это // проверить конструктор. if (x.constructor! == y.constructor) {return false; } for (var p in x) {// Унаследованные свойства были протестированы с использованием x.constructor === y.constructor if (x.hashownproperty (p)) {// позволяет сравнивать x [p] и y [p], когда установлено в неопределенном if (! y.hasownproperty (p)) {return false; } // Если они имеют одинаковое строгое значение или идентичность, они равны if (x [p] === y [p]) {продолжение; } // Числа, строки, функции, логины должны быть строго равны if (typeof (x [p])! == "Object") {return false; } // объекты и массивы должны быть проверены рекурсивно, если (! Object.equals (x [p], y [p])) {return false; }}} for (p in y) {// позволяет x [p] быть установленным в неопределенное if (y.hashownproperty (p) &&! x.hashownproperty (p)) {return false; }} вернуть true; };использовать:
obja = {a: '123', b: '456'}; objb = {a: '123', b: '000'}; var Isequal = cmp (obja, objb); console.log (isequal); // ложный другойЯ надеюсь, что эта статья будет полезна для каждого программирования JavaScript.