最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript中比较两个对象是否相等的方法

来源:动视网 责编:小采 时间:2020-11-27 19:27:25
文档

JavaScript中比较两个对象是否相等的方法

JavaScript中比较两个对象是否相等的方法:本篇文章给大家带来的内容是关于JavaScript中比较两个对象是否相等的方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。这是我在一次面试中,被面试官所提问的一道题在这次面试题中相等:指的是对象的属性个数值相等有这样两个objle
推荐度:
导读JavaScript中比较两个对象是否相等的方法:本篇文章给大家带来的内容是关于JavaScript中比较两个对象是否相等的方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。这是我在一次面试中,被面试官所提问的一道题在这次面试题中相等:指的是对象的属性个数值相等有这样两个objle


有这样两个obj

let obj1 = {
 name:'李德华',
 age:18,
 price:NaN
}

let obj2 = {
 name:'张德华',
 age:18,
 price:NaN
}

我能想到的一种方案

function compare(obj1,obj2){
 if(Object.keys(obj1).length != Object.keys(obj2).length){
 return false
 }else{
 for(key in obj1){
 if(obj2.hasOwnProperty(key)){
 if( !Object.is(obj1[key],obj2[key])){
 return false;
 }
 }else{
 return false
 }
 }
 return true
 }
}

解答过程的思考

  • 由于obj没有length,我只能通过Object.keys()转化成数组

  • 进入第二步,对象中的属性在另一个obj中是否存在。此处使用了Object.hasOwnProperty() 仅对该对象中的属性进行对比(避免obj继承了父级的属性)

  • 承载第二步的基础对属性值进行比对。ES6中Object.is()来避免出现NaN不等于自身的问题

  • 或者使用 Underscore.js中的_.isEqual

    文档

    JavaScript中比较两个对象是否相等的方法

    JavaScript中比较两个对象是否相等的方法:本篇文章给大家带来的内容是关于JavaScript中比较两个对象是否相等的方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。这是我在一次面试中,被面试官所提问的一道题在这次面试题中相等:指的是对象的属性个数值相等有这样两个objle
    推荐度:
    标签: 两个 方法 相同的
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top