Browse Source

更新公共方法
Signed-off-by: Caner <5658514@qq.com>

Caner 3 years ago
parent
commit
b5324690a9
2 changed files with 29 additions and 6 deletions
  1. 24 5
      src/utils/JsFn.ts
  2. 5 1
      src/vite-env.d.ts

+ 24 - 5
src/utils/JsFn.ts

@@ -4,9 +4,9 @@
  * @param key 关键字
  * @returns 去重后
  */
-export const unique = (arr: Array<any>, key: string) => {
+export const unique = (arr: Array<Any>, key: string) => {
   const res = []
-  const obj = {} as any
+  const obj = {} as Any
   for (let i = 0; i < arr.length; i++) {
     if (!obj[arr[i][key]]) {
       res.push(arr[i])
@@ -27,7 +27,7 @@ export const sleep = (ms: number) => { return new Promise((resolve) => { setTime
  * @param arr
  * @returns
  */
-export const flatten:any = (arr: Array<any>) => {
+export const flatten:any = (arr: Array<Any>) => {
   return [].concat(
     ...arr.map((x) => (Array.isArray(x) ? flatten(x) : x))
   )
@@ -39,7 +39,7 @@ export const flatten:any = (arr: Array<any>) => {
  * @param  key
  * @returns
  */
-export const search = (data: Array<any>, key: string) => {
+export const search = (data: Array<Any>, key: string) => {
   const list = data.filter((el) => {
     let bt = ''
     bt += el.name
@@ -88,4 +88,23 @@ export const mileage2string = (num: number) => {
   const b = Math.floor(num % 1000).toString()
   const c = b.length === 1 ? `00${ab}` : b.length === 2 ? `0${ab}` : ab
   return `${a}+${c}`
-}
+}
+
+/**
+ * 对象数组去重
+ * @param arr 传入数组
+ * @param key 需要对比的键
+ * @returns 去重后的数组
+ */
+export const uniqueArr = <T = Any>(arr: T[], key: keyof T) => {
+  const newArr = [] as T[]
+  const valueList = [] as Any[]
+
+  for (const item of arr) {
+    if (valueList.indexOf(item[key]) === -1) {
+      valueList.push(item[key])
+      newArr.push(item)
+    }
+  }
+  return newArr
+}

+ 5 - 1
src/vite-env.d.ts

@@ -6,4 +6,8 @@ declare module '*.vue' {
   export default component
 }
 declare module 'js-md5'
-declare module '@/utils/*'
+declare module '@/utils/*'
+
+/** 代指任意类型 请不要随意使用 */
+// eslint-disable-next-line no-unused-vars
+declare type Any = any