国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

判斷兩個對象的值是否相等

Cruise_Chan / 3244人閱讀

摘要:判斷兩個對象的值是否相等源代碼如果數據類型不相等,則返回如果數據類型相等,再根據不同數據類型分別判斷樣例

判斷兩個對象的值是否相等

源代碼

function isEqual (a, b) {
  const classNameA = toString.call(a)
  const classNameB = toString.call(b)
  // 如果數據類型不相等,則返回false
  if (classNameA !== classNameB) {
    return false
  } else {
    // 如果數據類型相等,再根據不同數據類型分別判斷
    if (classNameA === "[object Object]") {
      for (let key in a) {
        if (!isEqual(a[key], b[key])) return false
      }
      for (let key in b) {
        if (!isEqual(a[key], b[key])) return false
      }
      return true
    } else if (classNameA === "[object Array]") {
      if (a.length !== b.length) {
        return false
      } else {
        for (let i = 0, len = a.length; i < len; i++) {
          if (!isEqual(a[i], b[i])) return false
        }
        return true
      }
    } else if (classNameA === "[object Function]") {
      return a.toString() === b.toString()
    } else {
      return Object.is(a, b)
    }
  }
}

樣例

const a = {
  arr: [1, true, {a: 6, arr: [9, 0, 6, [5, 9]]}],
  d: 0,
  obj: { d: 9, arr: [5000]},
  e: ()=>{},
  f: [0]
}

const b = {
  arr: [1, true, {a: 6, arr: [9, 0, 6, [5, 9]]}],
  d: 0,
  obj: { d: 9, arr: [5000]},
  e: ()=>{},
  f: [0]
}

console.log(isEqual(a, b))

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/94830.html

相關文章

  • 數據類型轉換、==和===的判斷

    不同數據類型做比較的時候,都需要進行數據類型的轉換!本文介紹常見數據類型轉換的方法,相等和嚴格相等的判斷規律 一、其他類型轉換成布爾類型 1、使用場景: 對于括號里的表達式,會被強制轉換為布爾類型 if () { console.log(empty) } 2、轉換規則 類型 結果 Undefined false Null false Number +0, ?0, 或者 N...

    MASAILA 評論0 收藏0
  • 【重溫基礎】18.相等判斷

    摘要:通常在轉換不同數據類型時,相等和不相等會遵循以下規則若有一個操作數是布爾值,則比較前會將布爾值轉換為數值轉為,轉為。 本文是 重溫基礎 系列文章的第十八篇。今日感受:優化自己的代碼,也是很愉快的事情。 系列目錄: 【復習資料】ES6/ES7/ES8/ES9資料整理(個人整理) 【重溫基礎】1-14篇 【重溫基礎】15.JS對象介紹 【重溫基礎】16.JSON對象介紹 【重溫基礎...

    趙春朋 評論0 收藏0
  • JavaScript疑難雜癥系列-相等判斷

    摘要:同一類的復合類型值兩個復合類型對象數組函數的數據比較時,不是比較它們的值是否相等,而是比較它們是否指向同一個對象。寬松相等雙等號將執行類型轉換原始類型的值原始類型的數據會轉換成數值類型再進行比較。 事件這塊知識點雖然是老生長談的,但對于我來說多多整理,多多感悟,溫故知新,每次看看這塊都有不同的收獲.(在這里我不會長篇大論,只會挑重點;具體的小伙伴們自行查找)參考:https://dev...

    Flink_China 評論0 收藏0
  • JavaScript疑難雜癥系列-相等判斷

    摘要:同一類的復合類型值兩個復合類型對象數組函數的數據比較時,不是比較它們的值是否相等,而是比較它們是否指向同一個對象。寬松相等雙等號將執行類型轉換原始類型的值原始類型的數據會轉換成數值類型再進行比較。 事件這塊知識點雖然是老生長談的,但對于我來說多多整理,多多感悟,溫故知新,每次看看這塊都有不同的收獲.(在這里我不會長篇大論,只會挑重點;具體的小伙伴們自行查找)參考:https://dev...

    2bdenny 評論0 收藏0

發表評論

0條評論

Cruise_Chan

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<