UNPKG

1.42 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var is_object_like_1 = require("./is-object-like");
4var is_array_like_1 = require("./is-array-like");
5var is_string_1 = require("./is-string");
6var isEqual = function (value, other) {
7 if (value === other) {
8 return true;
9 }
10 if (!value || !other) {
11 return false;
12 }
13 if (is_string_1.default(value) || is_string_1.default(other)) {
14 return false;
15 }
16 if (is_array_like_1.default(value) || is_array_like_1.default(other)) {
17 if (value.length !== other.length) {
18 return false;
19 }
20 var rst = true;
21 for (var i = 0; i < value.length; i++) {
22 rst = isEqual(value[i], other[i]);
23 if (!rst) {
24 break;
25 }
26 }
27 return rst;
28 }
29 if (is_object_like_1.default(value) || is_object_like_1.default(other)) {
30 var valueKeys = Object.keys(value);
31 var otherKeys = Object.keys(other);
32 if (valueKeys.length !== otherKeys.length) {
33 return false;
34 }
35 var rst = true;
36 for (var i = 0; i < valueKeys.length; i++) {
37 rst = isEqual(value[valueKeys[i]], other[valueKeys[i]]);
38 if (!rst) {
39 break;
40 }
41 }
42 return rst;
43 }
44 return false;
45};
46exports.default = isEqual;
47//# sourceMappingURL=is-equal.js.map
\No newline at end of file