UNPKG

1.8 kBJavaScriptView Raw
1export const typeTrans = (
2 data: any,
3 type: string
4) => {
5 // 字符串对应的 false 转化为false true 转化为true
6 if (type === 'boolean') {
7 return data.toLowerCase() === 'false' ? false : true;
8 }
9
10 if (type === 'Boolean') {
11 return !!data;
12 }
13
14 if (type === 'int') {
15 return parseInt(data, 10);
16 }
17
18 if (type === 'Int') {
19 return (isNaN(parseInt(data, 10)) ? 0 : parseInt(data, 10));
20 }
21
22 if (type === 'float') {
23 return parseFloat(data, 10);
24 }
25
26 if (type === 'string') {
27 return data.toString();
28 }
29};
30
31/**
32 * @description 类型转换
33 **/
34export const typeCharge = (
35 str: string
36) => {
37 try {
38 str = str.trim();
39 const stringReg = /^(['"])(.*)\1$/;
40 const arrayReg = /^\[\]$/;
41 const objectReg = /^\{\}$/;
42
43 // 若果是以''包住 或者""包住
44 if (stringReg.test(str)) {
45 // 返回字符串
46 str = str.match(stringReg).pop();
47 return str;
48 }
49
50 if (arrayReg.test(str)) {
51 return [];
52 }
53
54 if (objectReg.test(str)) {
55 return {};
56 }
57
58 // 说明不是字符串类型的值
59 let num = parseFloat(str);
60 let boo = str === 'false' ? false : (str === 'true' ? true: '');
61 str = num || boo !== '' ? num || boo : str;
62 return str;
63 } catch (e) {
64 return str;
65 }
66};
67
68export const objToArray = (
69 data: Array, // 转换的对象数组
70 key: string // 转化你的值
71) => {
72 try {
73 let arr = [];
74 for (let i = 0 ;i < data.length; i++) {
75 //for (let i of data) {
76 arr = arr.concat(data[i][key]);
77 }
78
79 return arr;
80 } catch (e) {
81 return [];
82 };
83};