• 比较两个数组是否相等(基于指定的属性标识)

    Type Parameters

    • T

    Parameters

    • a: T[]

      第一个数组

    • b: T[]

      第二个数组

    • prop: ((item: T) => string)

      用于比较的属性提取函数

        • (item): string
        • Parameters

          • item: T

          Returns string

    Returns boolean

    如果两个数组长度相同且包含相同的元素(基于属性标识),则返回true,否则返回false

    // 比较两个对象数组的id属性
    const list1 = [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}];
    const list2 = [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}];
    listEqual(list1, list2, item => item.id); // true
    // 比较两个字符串数组
    const arr1 = ['a', 'b', 'c'];
    const arr2 = ['a', 'b', 'c'];
    listEqual(arr1, arr2, item => item); // true
    // 长度不同的数组
    const arr1 = [1, 2, 3];
    const arr2 = [1, 2];
    listEqual(arr1, arr2, item => item.toString()); // false
    // 元素相同但顺序不同
    const arr1 = [1, 2, 3];
    const arr2 = [3, 2, 1];
    listEqual(arr1, arr2, item => item.toString()); // true