Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Fedex
/
imac-vue
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
Elements-SY
2023-09-20 18:21:57 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
45fcee50a8093f2ea00ed1ca489a768a1ed58576
45fcee50
1 parent
f77cfb6d
modify
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
60 additions
and
0 deletions
src/utils/index.js
src/utils/index.js
View file @
45fcee5
...
...
@@ -454,3 +454,63 @@ export function restTableHeight($refs) {
let
topHeaderClientHeight
=
document
.
querySelector
(
".headerRef"
).
clientHeight
;
return
heigth
+
topHeaderClientHeight
;
}
/**
* Array Json去重 & 排序
* @param {Array} arr
* @param {string || Object} keys
* @description 对数组中指定的JSON字段去重和指定的字段进行排序
* @example
* 当指定一个字段去重时:removeDuplicates(arr, "flightRoute")
* 当指定一个字段去重并且排序如下:
* const result = removeDuplicates(arr, {
* duplicate: "flightRoute", // 去重字段
* sortType: "Number", // 排序类型:number、string
* sortAttr: "routePriority", // 排序字段
* })
*/
export
function
removeDuplicates
(
arr
,
keys
)
{
const
dict
=
{};
const
result
=
{
repeat
:
[],
unique
:
[],
};
let
duplicate
=
keys
;
if
(
typeof
keys
==
"object"
)
{
duplicate
=
keys
.
duplicate
;
}
// 去重
result
.
unique
=
arr
.
reduce
((
res
,
currentValue
)
=>
{
if
(
!
dict
[
currentValue
[
duplicate
]])
{
dict
[
currentValue
[
duplicate
]]
=
true
;
res
.
push
(
currentValue
);
}
else
{
result
.
repeat
.
push
(
currentValue
);
}
return
res
;
},
[]);
// 返回去重结果
if
(
typeof
keys
==
"string"
)
return
result
;
// 排序
if
(
typeof
keys
==
"object"
)
{
if
(
keys
.
sortType
.
toLowerCase
().
trim
()
==
"number"
)
{
if
(
result
.
repeat
.
length
)
{
result
.
repeat
=
sortFn
(
"repeat"
);
}
if
(
result
.
unique
.
length
)
{
result
.
unique
=
sortFn
(
"unique"
);
}
return
result
;
}
}
// 排序方法
function
sortFn
(
attr
)
{
if
(
isNaN
(
Number
(
result
[
attr
][
0
][
keys
.
sortAttr
])))
{
return
result
[
attr
].
sort
((
a
,
b
)
=>
a
[
keys
.
sortAttr
].
localeCompare
(
b
[
keys
.
sortAttr
])
);
// 按字母排序
}
else
{
return
result
[
attr
].
sort
((
a
,
b
)
=>
a
[
keys
.
sortAttr
]
-
b
[
keys
.
sortAttr
]);
// 按数字排序
}
}
}
...
...
Please
register
or
login
to post a comment