JavaScript 如何比较两个数组
在这篇文章中,我们将看到如何在JavaScript中比较两个数组。首先,我们需要比较两个数组的长度是否相等,然后判断它们中的对象是否为相同类型,并且判断一个数组的每个项是否等于另一个数组。
在JavaScript中比较两个数组的方法:
- 使用JSON.stringify()方法
- 使用for循环
- 使用等号操作符
- 使用数组的every()方法
方法1:使用JSON.stringify()方法
JavaScript提供了一个函数JSON.stringify()方法,用于将对象或数组转换为JSON字符串。通过将其转换为JSON字符串,我们可以直接检查字符串是否相等。
示例: 此示例使用JSON.stringify()方法将对象或数组转换为JSON字符串,然后根据给定条件进行检查。如果满足特定条件,则返回true;否则,返回false。
// Declare two arrays
let arr1 = [1, 2, 3, 5];
let arr2 = [1, 2, 3, 5];
// Comparing both arrays using stringify method
if (JSON.stringify(arr1) == JSON.stringify(arr2))
console.log("True");
else
console.log("False");
// Declare another array
let arr3 = [1, 2, 4, 5];
// Comparing both arrays using stringify method
if (JSON.stringify(arr1) == JSON.stringify(arr3))
console.log("True");
else
console.log("False");
输出
True
False
方法2:使用 for 循环元素
在这种方法中,我们将使用for循环逐个比较数组的每个元素。
示例: 在这个示例中,我们手动检查每个项目,并在它们相等时返回true,否则返回false。
function isEqual() {
let a = [1, 2, 3, 5];
let b = [1, 2, 3, 5];
// If length is not equal
if (a.length != b.length)
return "False";
else {
// Comparing each element of array
for (let i = 0; i < a.length; i++)
if (a[i] != b[i])
return "False";
return "True";
}
}
let v = isEqual();
console.log(v);
输出
True
方法3:字符串比较
尽管JavaScript没有直接比较两个数组的内建方法,但它有内建方法来比较两个字符串。字符串也可以使用等号操作符进行比较。因此,我们可以使用数组的join()方法将数组转换为字符串,然后再检查字符串是否相等。
示例:
// JavaScript program to implement the approach
// Function that converts the arrays to strings
// and then compares the strings
function isEqual(a, b) {
return a.join() == b.join();
}
// Driver Code
let a = [1, 2, 3, 5];
let b = [1, 2, 3, 5];
console.log(isEqual(a, b));
输出
true
方法4: 使用Array every()方法
Javascript Array.every() 方法考虑数组的所有元素,然后进一步检查数组的所有元素是否满足由用户传递的给定条件(由作为参数传递给该方法的方法提供)。
const compareFunc = (a, b) =>
a.length === b.length &&
a.every((element, index) => element === b[index]);
let a = [1, 2, 3, 5];
let b = [1, 2, 3, 5];
console.log(compareFunc(a, b));
输出结果
true
极客教程