1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var is_object_like_1 = require("./is-object-like");
|
4 | var is_array_like_1 = require("./is-array-like");
|
5 | var is_string_1 = require("./is-string");
|
6 | var 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 | };
|
46 | exports.default = isEqual;
|
47 |
|
\ | No newline at end of file |