码迷,mamicode.com
首页 > 其他好文 > 详细

vue--判断两个对象是否相等

时间:2019-10-11 15:17:17      阅读:1143      评论:0      收藏:0      [点我收藏+]

标签:inf   --   regex   ring   bool   alt   字符   mamicode   this   

//判断两个对象是否相等
isEqual(objA,objB){
    //相等
    if(objA === objB) return objA !== 0 || 1/objA === 1/objB;
    //空判断
    if(objA == null || objB == null) return objA === objB;
    //类型判断
    if(Object.prototype.toString.call(objA) !== Object.prototype.toString.call(objB)) return false;

    switch(Object.prototype.toString.call(objA)){
        case ‘[object RegExp]‘:
        case ‘[object String]‘:
            //字符串转换比较
            return ‘‘ + objA ===‘‘ + objB;
        case ‘[object Number]‘:
            //数字转换比较,判断是否为NaN
            if(+objA !== +objA){
                return +objB !== +objB;
            }

            return +objA === 0?1/ +objA === 1/objB : +objA === +objB;
        case ‘[object Date]‘:
        case ‘[object Boolean]‘:
            return +objA === +objB;
        case ‘[object Array]‘:
            //判断数组
            for(let i = 0; i < objA.length; i++){
                if (!this.isEqual(objA[i],objB[i])) return false;
            }
            return true;
        case ‘[object Object]‘:
            //判断对象
            let keys = Object.keys(objA);
            for(let i = 0; i < keys.length; i++){
                if (!this.isEqual(objA[keys[i]],objB[keys[i]])) return false;
            }

            keys = Object.keys(objB);
            for(let i = 0; i < keys.length; i++){
                if (!this.isEqual(objA[keys[i]],objB[keys[i]])) return false;
            }

            return true;
        default :
            return false;
    }
},

 

一般这种判断,我们会写一个公用的方法,放在一个公用的文件,然后在main.js引入就可以了

技术图片

 

在main.js文件中引入文件

//全局公用方法
import utils from ‘./assets/js/utils‘;
Vue.prototype.$utils = utils;

vue--判断两个对象是否相等

标签:inf   --   regex   ring   bool   alt   字符   mamicode   this   

原文地址:https://www.cnblogs.com/shenpeng/p/11654308.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!