赞
踩
- const formatTrimValue = data => {
- let trimData = data;
- formatArrOrObjTrimValue(trimData);
- return trimData;
- }
-
- const formatArrOrObjTrimValue = val => {
- for(let i in val) {
- if(typeof val[i] === 'string' && val[i].length>0) {
- val[i.trim()] = val[i].trim();
- // 如果key两端有空格
- if(i.trim().length<i.length) {
- delete val[i];
- }
- }
- else if(
- isAnyObject(val[i]) ||
- (Array.isArray(val[i]) && val[i].length > 0)
- ) {
- val[i.trim()] = val[i];
- // 如果key两端有空格
- if(i.trim().length<i.length) {
- delete val[i];
- }
- formatArrOrObjTrimValue(val[i.trim()])
- }
- }
- }
-
- const isAnyObject = val => Object.prototype.toString.call(val) === '[object Object]'
-
- const o1 = {
- a: {
- ' a1 222': ' 1 222',
- a2: [' 222 ',{aa: ' bbbb '}]
- },
- ' b1 ': {
- a1: ' 1sds 222',
- ' a3 ': [' sss 222 ',{aa: ' bbbb sss '}]
- }
- }
-
- console.log(formatTrimValue(o1))
-
-
- // 在接口中使用:
- const Api = axios.create({
- baseURL: '/api',
- timeout: 50000,
- headers: {}
- });
- Api.interceptors.request.use(config=>{
- config.data = isAnyObject(config.data)?formatTrimValue(config.data):config.data;
- // 其他设置略...
- return config;
- })
- // 其他略....
这样基本可以满足接口传参的要求了,不管你输入的两端有没有空格,空格是否在更深处的数组中或者对象中都能够处理,不用费心在每次接口交互的时候留意需要去两端空格的问题了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。