ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

路径资源统一处理、加工、拼接方法

2021-03-18 16:01:19  阅读:136  来源: 互联网

标签:arr http 加工 url 路径 else 拼接 return imgUrl


1、不知道大家有没有遇到同样的问题,后台接口传来的图片资源有带http的资源前缀,也有三方库返回的不带http资源前缀,而且后台换一次人,多张图片资源有传字符串用逗号分隔的,也有用数组格式传的,而且多张图片同样有带http,也有不带http的,且该问题往后上传的图片同样存在这个问题(原因是移动端和后台管理传的时候没做统一),之前同事简单封装老出问题,后来自己重写方法,方法如下:
2、注意事项:该方法如果在html部分调用,可能会出现在imgUrl资源加载完成之前调用,就会执行最后else部分console.log(‘函数urlProcessingW未传入任何参数’),等imgUrl资源加载完成即再次执行可正常显示,
3、该方法可接收字符串类型或者数组类型,默认返回数组,
4、路径资源若是字符串类型有逗号且返回类型不是arr,时需要自己补充了。

const baseUrlW = 'http://xxxxx.com';
const urlProcessingW = function(imgUrl, backType = 'arr') {// backType 为可选参数,函数返回数据的数据格式
	if(imgUrl !== undefined) {
		//类型为字符串且不为空
		if(typeof(imgUrl) === 'string' && imgUrl !== '') {
			//字符串中有,号
			if(imgUrl.indexOf(',') !== -1) {
				//有逗号且返回类型为arr (默认或传来)
				if(backType === 'arr') {
					return imgUrl.split(',').map((url) => {
						if(url.indexOf('http') !== -1) {
							return url
						}else {
							return baseUrlW + url
						}
					})
				//有逗号且返回类型不是arr,想要啥格式自己补吧
				}else {}
			//没有,号
			}else {
				//没有,号且返回类型为arr
				if(backType === 'arr') {
					//是否有http头
					if(imgUrl.indexOf('http') !== -1) {
						return imgUrl.split(',')
					}else {
						return (baseUrlW + imgUrl).split(',')
					}
				}else {
					return imgUrl.indexOf('http') !== -1 ? imgUrl : baseUrlW + imgUrl
				}
			}
		//imgUrl 为数组
		}else if(Array.isArray(imgUrl) && imgUrl.length !== 0){
			return imgUrl.map((url) => {
				if(url.indexOf('http') !== -1) {
					return url
				}else {
					return baseUrlW + url
				}
			})
		}else {
			//除字符串及数组类型处理可在此进行
		}
	}else {
		console.log('函数urlProcessingW未传入任何参数')
	}
}

标签:arr,http,加工,url,路径,else,拼接,return,imgUrl
来源: https://blog.csdn.net/weixin_45440813/article/details/114980903

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有