index.ts 929 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // 集合
  2. interface ObjType {
  3. [key: string]: any;
  4. }
  5. /**
  6. * 多个对象合并相同的属性
  7. * @param a 合并之后的对象
  8. * @param b 把相同的属性的value 值赋值给a对象
  9. */
  10. export function mergeObj(a: ObjType, ...rest: ObjType[]): void {
  11. Object.keys(a).forEach((key) => {
  12. rest.forEach((param) => {
  13. if (Reflect.has(param, key)) {
  14. a[key] = param[key];
  15. }
  16. });
  17. });
  18. }
  19. /**
  20. * 合并两个对象
  21. * @param a
  22. * @param b
  23. * @param callBack
  24. */
  25. export function mergeTwoObj(a: any, b: any, callBack?: Function) {
  26. const obj: ObjType = {};
  27. Object.keys(a).forEach((el) => {
  28. const key = el.toLocaleLowerCase();
  29. if (Reflect.has(b, key)) {
  30. obj[el] = b[key];
  31. } else {
  32. console.warn(`为找到对应的key:${key}`);
  33. callBack && callBack(el)
  34. }
  35. });
  36. Object.assign(a, obj);
  37. }