JavaScript >> Javascript 文檔 >  >> Tags >> Arrays

如何在 JavaScript 中比較兩個數組

不幸的是,在 vanilla JavaScript 中,沒有直接的方法可以比較兩個數組來檢查它們是否相等。如果你谷歌這個,你會在 StackOverflow 和其他開發者社區找到很多不同的答案。

比較兩個數組時,要確保它們的長度相同,值相同,並且其中存在的對象屬於同一類型。

JSON.stringify() 方法

比較兩個數組最簡單最快的方法是使用 JSON.stringify() 方法將它們轉換為字符串,然後使用比較運算符檢查兩個字符串是否相等:

const arr1 = ['🍕', '🍔', '🍵', '🎂', '🍦'];
const arr2 = ['🍕', '🍔', '🍵', '🎂', '🍦'];

// compare arrays
if (JSON.stringify(arr1) === JSON.stringify(arr2)) {
    console.log('Both arrays are equal!');
} else {
    console.log('Arrays are not equal.');
}

當兩個數組中的元素具有完全相同的順序時,這種方法僅適用於基本比較。如果兩個數組中元素的順序不同,則不起作用。

例如,以下兩個數組將 not 使用 JSON.stringify() 相等 方法:

const arr1 = ['a', 'b', 'c', 'd'];
const arr2 = ['a', 'c', 'b', 'd'];

JSON.stringify(arr1) === JSON.stringify(arr2); // false

上述兩個數組包含相同數量的元素和完全相同的值,但順序不同。因此,通過 JSON.stringify() 比較時它們不相等 .

洛達什

對於包含不同順序的元素的複雜數組以及其他數組和對象,我們需要一個更健壯的解決方案,例如 Lodash 的 _.isEqual() 方法。

_.isEqual() 方法在兩個數組之間執行深度比較以確定它們是否相等。您甚至可以使用它來執行對象、日期、字符串、數組緩衝區等之間的比較。

這是一個例子:

const arr1 = ['John Doe', {age: 24, nationality: 'DE'}];
const arr2 = ['John Doe', {nationality: 'DE', age: 24}];

// compare arrays
if (_.isEqual(arr1, arr2)) {
    console.log('Arrays are equal!');
}

查看本指南以了解有關 JavaScript 數組以及如何使用它們在一個變量中存儲多個值的更多信息。


Tutorial JavaScript 教程
  1. 在一篇博文中學習 Python、PHP、Ruby 和 Javascript

  2. 使用 ReactJs 的口袋妖怪 API

  3. 使用 Vuetify 構建音樂播放器

  4. 基準測試 Javascript

  5. 如何在一行中添加兩個整數

  6. Flutter Slider 小部件:深入了解示例

  7. 反應基礎 |第 4 部分

  1. 使用 Azure Web PubSub 構建實時白板應用程序

  2. 如何在 JavaScript 中格式化日期

  3. 無服務器發送和接收電子郵件,CDK 方式

  4. 2022 年我的前 5 個全棧框架

  5. 使用 JSON Web 令牌創建安全密碼重置

  6. 容器中的代碼

  7. ECMAScript 2021 中的新功能(附代碼示例)

  1. 快速瀏覽可構造樣式表

  2. Docker 化 Node.js Web 應用程序

  3. 在生產中使用 Golang 並發

  4. 使用 react-native-paper 設計具有自定義主題的 UI