比较两个对象是否完全相等(深度检查)
function isObjectAllEqual (a, b) {
if ( a === void 0 ) a = {};
if ( b === void 0 ) b = {};
if (!a || !b) { return a === b } //a或者b存在且不为空对象的时候做对比
var aKeys = Object.keys(a); //a对象所有键组成的数组
var bKeys = Object.keys(b); //b对象所有键组成的数组
if (aKeys.length !== bKeys.length) {//先比较ab键组成的数组长度是否相同
return false
}
// 确定数组的所有成员是否满足指定的测试。
return aKeys.every(function (key) {
var aVal = a[key];
var bVal = b[key];
// check nested equality
if (typeof aVal === 'object' && typeof bVal === 'object') {
return isObjectEqual(aVal, bVal)
}
return String(aVal) === String(bVal)
})
}
验证数组
var isarray = Array.isArray || function (arr) {
return Object.prototype.toString.call(arr) == '[object Array]';
};
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。