gerson
2024-08-11 81a60aa4fb7ee1689518918ceb9122f5d257e2fc
miniprogram/utils/common.ts
@@ -0,0 +1,26 @@
/**
 * 指定一个键,映射到整个行,也可以映射多行
 * @param arr
 * @param defaultProps
 * @returns
 */
export const getItemMap = <T>(arr: T[], defaultProps = 'id', isMultiple = false) => {
   if (!arr || arr.length === 0) return {};
   const result = arr.reduce((acc, curr) => {
      if (isMultiple) {
         if (!acc[curr[defaultProps]]) {
            acc[curr[defaultProps]] = [curr];
         } else {
            acc[curr[defaultProps]].push(curr);
         }
      } else {
         acc[curr[defaultProps]] = curr;
      }
      return acc;
   }, {}) as Record<string, T | T[]>;
   return result;
};