如何使用jQuery / JavaScript比较两个JavaScript数组对象

如何使用jQuery / JavaScript比较两个JavaScript数组对象

在本文中,我们给出了两个JavaScript数组/数组对象,并且任务是比较两个数组对象的相等性。

以下是比较两个JavaScript数组对象的方法:

  • 使用jQuery的not()方法
  • 使用sort()函数
  • 使用JSON.stringify()函数
  • 使用every()和indexOf()函数
  • 使用Lodash _.isEqual()方法

方法1:使用jQuery的not()方法

  • 使用jQuery的not()方法检查数组1的每个元素是否不在数组2中,或者检查数组2的每个元素是否不在数组1中,如果是,则在两种情况下都返回false。
  • 还要检查两个数组的长度。

示例: 这个示例使用了jQuery的not()方法来比较两个数组的相等性。

<!DOCTYPE html>
<html lang="en">
 
<head>
    <script src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js">
    </script>
 
    <title>
        How to compare two JavaScript array
        objects using jQuery/JavaScript ?
    </title>
</head>
 
<body style="text-align:center;">
    <h1 style="color:green;">
        GeeksforGeeks
    </h1>
 
    <h3>
        Click on the button to check
        equality of arrays<br>
        Array 1 = [1, 3, 5, 8]<br>
        Array 2 = [1, 3, 5, 7]
    </h3>
 
    <button onclick="GFG_Fun()">
        Click Here
    </button>
 
    <h3 id="GFG"
        style="color: green;">
    </h3>
 
    <script>
        let elm = document.getElementById('GFG');
        let arr1 = [1, 3, 5, 8];
        let arr2 = [1, 3, 5, 7];
 
        function GFG_Fun() {
            elm.innerHTML =
                (arr1).not(arr2).length === 0 &&
                (arr2).not(arr1).length === 0;
        } 
    </script>
</body>
 
</html>
HTML

输出:

如何使用jQuery / JavaScript比较两个JavaScript数组对象

方法2

  • 首先使用sort()函数对两个数组进行升序排序。
  • 然后逐个元素进行匹配,如果发现任何不匹配的情况,则返回false,否则返回true。

示例: 此示例使用JavaScript的sort()方法对数组进行升序排序,然后检查是否存在相同的值。

let arr1 = [1, 3, 7, 5];
let arr2 = [1, 3, 5, 7];
 
function compare(ar1, ar2) {
    ar1.sort();
    ar2.sort();
 
    if (ar1.length != ar2.length)
        return false;
 
    for (let i = 0; i < ar1.length; i++) {
        if (ar1[i] != ar2[i])
            return false;
    }
    return true;
}
 
console.log(compare(arr1, arr2));
JavaScript

输出

true
JavaScript

方法3:JSON.stringify()函数

  • 创建两个数组对象,并将它们存储到arr1和arr2变量中。
  • 使用JSON.stringify()函数将对象转换为JSON字符串。
  • 然后使用比较操作符(==)比较两个JSON字符串,以检查两个数组对象是否相等。

注意: 此方法仅在两个数组对象按照相同方式排序时才起作用。

示例: 在本示例中,我们将使用JSON.stringify()函数来比较两个数组对象。

let arr1 = [
    { id: "1", name: "GeeksforGeeks" },
    { id: "2", name: "GFG" }
];
 
let arr2 = [
    { id: "1", name: "GeeksforGeeks" },
    { id: "2", name: "GFG" }
];
 
function compare(ar1, ar2) {
    if (JSON.stringify(ar1) == JSON.stringify(ar2)) {
        return true;
    }
    else
        return false;
}
 
console.log(compare(arr1, arr2));
JavaScript

输出

true
JavaScript

方法4:使用every()和indexOf()

我们可以使用every()方法来遍历数组中的每个元素。JavaScript的 Array indexOf() 方法用于查找作为参数提供的搜索元素的第一个出现的索引。

示例:

let array1 = [1, 2, 3];
let array2 = [1, 2, 3];
 
let isEqual = array1.length === array2.length &&
    array1.every(function (element, index) {
        return element === array2[index];
    });
 
console.log(isEqual);
JavaScript

输出

true
JavaScript

方法5:使用Lodash _.isEqual()方法

Lodash的 _.isEqual()方法 可以对两个值进行深层比较,判断它们是否相等

示例:

// Defining Lodash variable
const _ = require('lodash');
 
let val1 = { "a": "gfg" };
 
let val2 = { "a": "gfg" };
 
// Checking for Equal Value
console.log("The Values are Equal : "
        +_.isEqual(val1,val2));
JavaScript

输出:

The Values are Equal : true  
JavaScript

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册