JavaScript 如何比较两个数组

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程