# 数组
# 扁平化
function flatten(arr) {
let result=[]
for (let i=0,len=arr.length;i<len;i++) {
if (Array.isArray(arr[i])) {
result=result.concat(flatten(arr[i]))
} else {
result.push(arr[i])
}
}
return result
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 打乱顺序
export const shuffle = (arr) => {
const result = [];
let random;
while (arr.length > 0) {
random = Math.floor(Math.random() * arr.length);
result.push(arr[random]);
arr.splice(random, 1);
}
return result;
};
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 去重
function unique(arr) {
let appeard=new Set()
return arr.filter(item=>{
//创建一个可以唯一标识对象的字符串id
let id=item+JSON.stringify(item)
if (appeard.has(id)) {
return false
} else {
appeard.add(id)
return true
}
})
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 参数数组转成json字符串
function (params = Array<{ param: string, value: string }>) {
if (!Array.isArray(params) || !params.length) {
return '{}';
}
const paramsStr = params
.filter(item => item.param && item.value)
.reduce((str, item, index, arr) => {
let isJSON = false;
try {
JSON.parse(item.value);
isJSON = true;
// eslint-disable-next-line no-empty
} catch (e) {}
const value = isJSON ? item.value : `"${item.value}"`;
str += `"${item.param}":${value}`;
if (index === arr.length - 1) {
str += '}';
} else {
str += ',';
}
return str;
}, '{');
return paramsStr;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
浏览器篇 →