使用场景,订单列表list 数组中,订单状态item.status 为2 或者3, 且订单类型 type 为 1的所有订单,拥有某个特定操作。
此时,可使用方法:
/**
* 获取多个数组的公共值
*/
export function getValueByArrays(...list: string[][]): string[] {
const set: Set < string > = new Set()
list.forEach((listItem: string[]) => {
listItem.forEach(item => set.add(item))
})
const array: string[] = []
const arr: string[] = Array.from(set)
arr.forEach(item => {
if (list.every(listItem => listItem.includes(item))) {
array.push(item)
}
})
return array
}
具体使用方式,如下:
const ctrlArray1 = getArrayBySelectedList(list, 'status', [2,3], 'id')
const ctrlArray2 = getArrayBySelectedList(list, 'type', [1], 'id')
const array = getValueByArrays(ctrlArray1, ctrlArray2)
其中,getArrayBySelectedList 方法,详见 5.获取数组中指定字段值的数据