/** Vue源码 296行
* Check if two values are loosely equal - that is,
* if they are plain objects, do they have the same shape?
*/
function isObject(data){
return typeof data === 'object' && data !== null
}
function looseEqual(a,b){
if(a===b) return true
let isObjectA = isObject(a)
let isObjectB = isObject(a)
if(isObjectA && isObjectB){
let isArrayA = Array.isArray(a)
let isArrayB = Array.isArray(b)
if(isArrayA && isArrayB){
return isArrayA.length === isArrayB && isArray.every((i,k)=> looseEqual(i,b[k]))
}else if(a instanceof Date && b instanceof Date){
return a.getTime() === b.getTime()
}else if(!isArrayA && !isArrayB){
let keysA = Object.keys(a)
let keysB = Object.keys(b)
return keysA.length === keysB.length && keysA.every(i=>looseEqual(a[i],b[i]))
}else{
/* istanbul ignore next */
return false
}
}else if(!isObjectA && !isObjectB){
return String(a) === String(b)
}else{
/* istanbul ignore next */
return false
}
}
js 判断宽松相等
原创
©著作权归作者所有:来自51CTO博客作者StavinLi的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【JS】137-重温基础:相等性判断
本文是 重温基础 系列文章的第十八篇。今日感受:优化自己的代码,也是很愉快的事情。
操作数 操作符 javascript -
使用js判断颜色是否相等,然后投票
使用js判断颜色是否相等,然后投票
css js代码 置顶 jquery -
javascript 相等 js判断数值相等
有关js中能否使用equals来判断相等的问题
javascript 相等 自动转换 数据类型 Java -
Trae配置JAVA本地环境,开发前后端
使用他去写前端非常好,提示词要准确,不然后期调整非常麻烦,他绕不出来。
#java #开发语言 java maven Java -
Oracle RAC架构揭秘:高可用的核心机制
如InnoDB Cluster)适合预算有限场景。
#oracle #架构 #数据库 共享存储 缓存 -
深入理解K近邻(KNN)算法原理
其计算效率和维度灾难问题。
#算法 #机器学习 #人工智能 #分类 #k近邻算法
















