美文网首页
判断一个对象是否包含于另一个数组对象

判断一个对象是否包含于另一个数组对象

作者: noyanse | 来源:发表于2019-01-09 18:54 被阅读0次
function diff(obj1,obj2){ // 判断两个对象是否相等
    let o1 = obj1 instanceof Object
    let o2 = obj2 instanceof Object
    if (!o1 || !o2){ // 判断不是对象
        return obj1 === obj2
    }

    if(Object.keys(obj1).length !== Object.keys(obj2).length){
        return false;
        //Object.keys() 返回一个由对象的自身可枚举属性(key值)组成的数组,例如:数组返回下表:let arr = ["a", "b", "c"];console.log(Object.keys(arr))->0,1,2;
    }

    for (var attr in obj1) {
        let t1 = obj1[attr] instanceof Object
        let t2 = obj2[attr] instanceof Object
        if (t1 && t2) {
            return diff(obj1[attr],obj2[attr])
        } else if (obj1[attr] !== obj2[attr]) {
            return false
        }
    }
    return true
}

// 判断对象在不在数组对象中
function check(arr, obj) {
    for(let i=0; i<arr.length;i++) {
        if(diff(arr[i], obj)) { 
            return true
        } else {
            return false
        }
}

相关文章

网友评论

      本文标题:判断一个对象是否包含于另一个数组对象

      本文链接:https://www.haomeiwen.com/subject/eqogrqtx.html