关键词

js判断两个数组相等的5种方法实例

下面是讲解“js判断两个数组相等的5种方法实例”的完整攻略:

前言

在开发中,我们经常需要比较两个数组是否完全相等。JS提供了多种方法来判断两个数组是否相等。但需要注意的是,这些方法中有一些是不可靠的,比如"==="运算符。本文将介绍五种可靠的判断数组是否相等的方法。

方法一:JSON.stringify()

JSON.stringify() 方法将一个JavaScript值(对象或者数组)转换为一个JSON字符串,如果两个数组相等,那么它们的JSON.stringify()返回值也相等。但需要注意的是,该方法在判断含有NaN或Infinity的数组时可能会出错。

const arr1 = [1, 2, 3];
const arr2 = [1, 2, 3];
if(JSON.stringify(arr1) === JSON.stringify(arr2)){
  console.log('两个数组相等');
} else {
  console.log('两个数组不相等');
}

方法二:循环比较

循环比较是一种最基础的方法。通常我们比较两个数组时会先比较它们的长度,如果不相等则直接返回false,否则比较每个元素是否相等。

const arr1 = [1, 2, 3];
const arr2 = [1, 2, 3];
if(arr1.length !== arr2.length){
  console.log('两个数组不相等');
} else {
  let flag = true;
  for(let i = 0; i < arr1.length; i++){
    if(arr1[i] !== arr2[i]){
      flag = false;
      console.log('两个数组不相等');
      break;
    }
  }
  if(flag){
    console.log('两个数组相等');
  }
}

方法三:Lodash库isEqual()方法

Lodash库是一个著名的JS工具库,其中的isEqual()方法可以用来比较两个数组是否相等。

const _ = require('lodash');
const arr1 = [1, 2, 3];
const arr2 = [1, 2, 3];
if(_.isEqual(arr1, arr2)){
  console.log('两个数组相等');
} else {
  console.log('两个数组不相等');
}

方法四:Set对象

Set对象是ES6中的一种数据结构,它可以自动去重,那么只要将两个数组转换成Set对象后,比较它们的大小是否相等即可。

const arr1 = [1, 2, 3];
const arr2 = [1, 2, 3];
if(arr1.length !== arr2.length){
  console.log('两个数组不相等');
} else {
  const set1 = new Set(arr1);
  const set2 = new Set(arr2);
  if(set1.size !== set2.size){
    console.log('两个数组不相等');
  } else {
    console.log('两个数组相等');
  }
}

方法五:Underscore库的isEqual()方法

Underscore是另一个著名的JS工具库,它也提供了一个isEqual()方法来比较两个数组是否相等。

const _ = require('underscore');
const arr1 = [1, 2, 3];
const arr2 = [1, 2, 3];
if(_.isEqual(arr1, arr2)){
  console.log('两个数组相等');
} else {
  console.log('两个数组不相等');
}

综上所述,以上是JS判断两个数组相等的5种方法,大家可以根据实际需要选择合适的方法来判断数组是否相等。

本文链接:http://task.lmcjl.com/news/9270.html

展开阅读全文