utils.ts
960 Bytes
/* eslint-disable @typescript-eslint/no-shadow */
interface isValueReturnProps {
list: string[],
error: string[],
}
/**
* 判断 vals 值和 list 中value 值是否匹配 并返回未匹配列表
* (1111, [{ key:1111 }] ) => { error:[], list:[1111] }
* ([111,222], [{ key:111 }, { key:222 }]) => { error:[], list:[111,222] }
* ([11,44],[{ key:11 }, { key:45 }]) => { error:[44], list:[11] }
*/
export const isValue = (vals: string | string[], list: any[]): isValueReturnProps => {
const sets = new Set([...list.map(({ key }: any) => key)]);
if (Array.isArray(vals)) {
const error = vals.filter((key) => !sets.has(key));
const list = vals.filter((key) => sets.has(key));
return { list, error };
}
if (typeof vals === 'string') {
if (sets.has(vals)) {
return { error: [], list: [vals] }
}
return { error: [vals], list: [] }
}
return { error: [], list: [] };
}