tools-for-js 1.5.1 → 1.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/utils/common.js +9 -7
- package/package.json +1 -1
package/lib/utils/common.js
CHANGED
|
@@ -90,18 +90,20 @@ var isEmpty = exports.isEmpty = function isEmpty(params) {
|
|
|
90
90
|
var isEqual = exports.isEqual = function isEqual(a, b) {
|
|
91
91
|
// 类型为基本类型时,如果相等,则返回true
|
|
92
92
|
if (a === b) return true;
|
|
93
|
-
if (IsType('Object', a) && IsType('Object', b)
|
|
94
|
-
//
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
93
|
+
if (IsType('Object', a) && IsType('Object', b)) {
|
|
94
|
+
// 若两个参数都为对象,先判断对象长度是否相同,再遍历对象内元素是否相同
|
|
95
|
+
if (Object.keys(a).length !== Object.keys(b).length) return false;
|
|
96
|
+
for (var k in a) {
|
|
97
|
+
if (a.hasOwnProperty(k)) {
|
|
98
|
+
if (!isEqual(a[k], b[k])) {
|
|
98
99
|
// 对象中具有不相同属性 返回false
|
|
99
100
|
return false;
|
|
100
101
|
}
|
|
101
102
|
}
|
|
102
103
|
}
|
|
103
|
-
} else if (IsType('Array', a) && IsType('Array', b)
|
|
104
|
-
//
|
|
104
|
+
} else if (IsType('Array', a) && IsType('Array', b)) {
|
|
105
|
+
// 若两个参数都为数组,则先判断数组长度是否相同,遍历数组元素是否相同
|
|
106
|
+
if (a.length !== b.length) return false;
|
|
105
107
|
for (var i = 0, length = a.length; i < length; i++) {
|
|
106
108
|
if (!isEqual(a[i], b[i])) {
|
|
107
109
|
// 如果数组元素中具有不相同元素,返回false
|