首页 > 解决方案 > 如果我没有要排除的属性,Lodash如何验证数组中的属性是否全部相等

问题描述

假设我有这些员工数据

var service = [{
        AssignedEmployeeInternalID: "8000000011",
        AssignedEmployeeUUID: "00000000-0001-1EE1-82C1-8379F1C4462E",
        BillableIndicator: true,
        BusinessPartnerFormattedName: "Sébastien Brun",
        EndDateTime: null,
        EndDatetimeZoneCode: "UTC",
        Info: "-N/A",
        InternalID: "",
        ObjectID: "00163E0E46241EE988E20C5E4033E0BE",
        ParentObjectID: "00163E0306801ED287F1C8E9CDFA9E4A",
        PeriodPlansArray: [],
        PlannedWorkQuantity: "0.00000000000000",
        PlannedWorkQuantityunitCode: "HUR",
        PlannedWorkQuantityunitCodeText: "",

    },
    {
        AssignedEmployeeInternalID: "8000000011",
        AssignedEmployeeUUID: "00000000-0001-1EE1-82C1-8379F1C4462E",
        BillableIndicator: false,
        BusinessPartnerFormattedName: "Sébastien Brun",
        EndDateTime: null,
        EndDatetimeZoneCode: "UTC",
        Info: "-N/A",
        InternalID: "",
        ObjectID: "00163E0E46241EE988E20C5E4033E0BE",
        ParentObjectID: "00163E0306801ED287F1C8E9CDFA9E4A",
        PeriodPlansArray: [],
        PlannedWorkQuantity: "0.00000000000000",
        PlannedWorkQuantityunitCode: "HUR",
        PlannedWorkQuantityunitCodeText: "",

    },
    {
        AssignedEmployeeInternalID: "8000000011",
        AssignedEmployeeUUID: "00000000-0001-1EE1-82C1-8379F1C4462E",
        BillableIndicator: true,
        BusinessPartnerFormattedName: "Sébastien Brun",
        EndDateTime: null,
        EndDatetimeZoneCode: "UTC",
        Info: "-N/A",
        InternalID: "",
        ObjectID: "00163E0E46241EE988E20C5E4033E0BE",
        ParentObjectID: "00163E0306801ED287F1C8E9CDFA9E4A",
        PeriodPlansArray: [],
        PlannedWorkQuantity: "0.00000000000000",
        PlannedWorkQuantityunitCode: "HUR",
        PlannedWorkQuantityunitCodeText: "",
    }
]

如何验证AssignedEmployeeInternalID所有数组中的相同?

到目前为止,我想出了这个:

result =  _.differenceBy(service, [{ 'AssignedEmployeeInternalID': "8000000011" }], 'AssignedEmployeeInternalID'); 

但是如果我没有要排除的值怎么办(我无法提前知道 AssignedEmployeeInternalID 值)

我想动态验证属性是否都相同

标签: javascriptarrayslodash

解决方案


如果您使用 Arrayevery方法,您可以在 vanilla JavaScript 中完成此操作,如下所示:

var service = [{
        AssignedEmployeeInternalID: "8000000011",
        AssignedEmployeeUUID: "00000000-0001-1EE1-82C1-8379F1C4462E",
        BillableIndicator: true,
        BusinessPartnerFormattedName: "Sébastien Brun",
        EndDateTime: null,
        EndDatetimeZoneCode: "UTC",
        Info: "-N/A",
        InternalID: "",
        ObjectID: "00163E0E46241EE988E20C5E4033E0BE",
        ParentObjectID: "00163E0306801ED287F1C8E9CDFA9E4A",
        PeriodPlansArray: [],
        PlannedWorkQuantity: "0.00000000000000",
        PlannedWorkQuantityunitCode: "HUR",
        PlannedWorkQuantityunitCodeText: "",

    },
    {
        AssignedEmployeeInternalID: "8000000011",
        AssignedEmployeeUUID: "00000000-0001-1EE1-82C1-8379F1C4462E",
        BillableIndicator: false,
        BusinessPartnerFormattedName: "Sébastien Brun",
        EndDateTime: null,
        EndDatetimeZoneCode: "UTC",
        Info: "-N/A",
        InternalID: "",
        ObjectID: "00163E0E46241EE988E20C5E4033E0BE",
        ParentObjectID: "00163E0306801ED287F1C8E9CDFA9E4A",
        PeriodPlansArray: [],
        PlannedWorkQuantity: "0.00000000000000",
        PlannedWorkQuantityunitCode: "HUR",
        PlannedWorkQuantityunitCodeText: "",

    },
    {
        AssignedEmployeeInternalID: "8000000011",
        AssignedEmployeeUUID: "00000000-0001-1EE1-82C1-8379F1C4462E",
        BillableIndicator: true,
        BusinessPartnerFormattedName: "Sébastien Brun",
        EndDateTime: null,
        EndDatetimeZoneCode: "UTC",
        Info: "-N/A",
        InternalID: "",
        ObjectID: "00163E0E46241EE988E20C5E4033E0BE",
        ParentObjectID: "00163E0306801ED287F1C8E9CDFA9E4A",
        PeriodPlansArray: [],
        PlannedWorkQuantity: "0.00000000000000",
        PlannedWorkQuantityunitCode: "HUR",
        PlannedWorkQuantityunitCodeText: "",
    }
];

const theSame = service.every(el => el.AssignedEmployeeInternalID === service[0].AssignedEmployeeInternalID);

console.log(theSame);


推荐阅读