devArraysEqual 比较数组是否相等
使用示例
ts
import { devArraysEqual } from 'devecoui-plus';
// 示例 1: 数字数组相等
const arr1 = [1, 2, 3];
const arr2 = [1, 2, 3];
console.log(devArraysEqual(arr1, arr2)); // 输出: true
// 示例 2: 数字数组不相等(元素不同)
const arr3 = [1, 2, 4];
console.log(devArraysEqual(arr1, arr3)); // 输出: false
// 示例 3: 数组长度不同
const arr4 = [1, 2];
console.log(devArraysEqual(arr1, arr4)); // 输出: false
// 示例 4: 数组内容顺序不同
const arr5 = [3, 2, 1];
console.log(devArraysEqual(arr1, arr5)); // 输出: true
// 示例 5: 包含对象的数组
const objArr1 = [{ name: 'Alice' }, { name: 'Bob' }];
const objArr2 = [{ name: 'Alice' }, { name: 'Bob' }];
console.log(devArraysEqual(objArr1, objArr2)); // 输出: false (对象引用不同)
// 示例 6: 参数不是数组
const notArray = 'This is a string';
console.log(devArraysEqual(arr1, notArray as any));
// 输出: false,且会在控制台显示警告:
// devArraysEqual:对比参数中含有非数组数据
// 示例 7: 空数组对比
const emptyArr1: any[] = [];
const emptyArr2: any[] = [];
console.log(devArraysEqual(emptyArr1, emptyArr2)); // 输出: true
方法源码
ts
/**
* 比较两个数组是否相等
* @param arr1 - 第一个数组
* @param arr2 - 第二个数组
* @returns 如果两个数组相等则返回 true,否则返回 false
*/
export function devArraysEqual<T>(arr1: T[], arr2: T[]): boolean {
// 检查是否两个输入均为数组类型
if (!Array.isArray(arr1) || !Array.isArray(arr2)){
console.warn('devArraysEqual:对比参数中含有非数组数据')
return false;
}
// 首先检查两个数组的长度是否相等
if (arr1.length !== arr2.length) return false; // 长度不相等,直接返回 false
// 使用 every 方法检查每个元素是否相等
return arr1.every((value, index) => value === arr2[index]); // 检查每个元素
}