如何使用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>
输出:

方法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));
输出
true
方法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));
输出
true
方法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);
输出
true
方法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));
输出:
The Values are Equal : true
极客教程