下面是讲解“js判断两个数组相等的5种方法实例”的完整攻略:
在开发中,我们经常需要比较两个数组是否完全相等。JS提供了多种方法来判断两个数组是否相等。但需要注意的是,这些方法中有一些是不可靠的,比如"==="运算符。本文将介绍五种可靠的判断数组是否相等的方法。
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库是一个著名的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对象是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是另一个著名的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