发布于 2026-01-05 0 阅读
0

在 JS 中比较两个数字数组的最简单方法(正确算法)

在 JavaScript 中比较两个数字数组的最简单方法

正确算法

对于字符串,我们可以直接使用=====来判断它们是否相同,但不能用它们来判断两个数组是否相似,或者说它们是否包含相同的元素。
所以这种方法行不通。

const array1 = [1, 2, 3, 4, 5]
const array2 = [1, 2, 3, 4, 5]
console.log(array1 == array2) //false
Enter fullscreen mode Exit fullscreen mode

但是如果我们把数组转换成字符串呢?这样就可以使用比较运算符了。这会让任务变得非常简单。我们可以使用`toString`方法对数组进行排序,例如:array1.toString()或者我们可以使用这个技巧。

console.log([1, 2, 3, 4, 5] + "")
//logs 1,2,3,4,5
console.log(typeof ([1, 2, 3, 4, 5] + ""))
//logs string
Enter fullscreen mode Exit fullscreen mode

所以,如果我们尝试将字符串(本例中为空字符串)连接到数组,数组就会被转换成字符串。
这样,我们就可以简单地将数组当作字符串来使用,并进行比较。

const array1 = [1, 2, 3, 4, 5]
const array2 = [1, 2, 3, 4, 5]
console.log(array1 + "" == array2 + "") //true
Enter fullscreen mode Exit fullscreen mode

另外,如果你想让它处理元素顺序混乱的数组,可以先对数组进行排序。我们来为此创建一个实用函数。

function compareArr(arr1, arr2){
    arr1.sort()
    arr2.sort()
    return arr1 + "" == arr2 + ""
}
const array1 = [1, 2, 3, 4, 5]
const array2 = [1, 5, 2, 4, 3]
console.log(compareArr(array1, array2)) // returns true
Enter fullscreen mode Exit fullscreen mode
文章来源:https://dev.to/0shuvo0/simplest-way-to-compare-two-array-in-js-4gio