|
|
@@ -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
|
|
|
+}
|