我有一个javascript对象数组,首先,我要检查它们是否为URL,如果是,则要执行操作,在其中对Base64进行编码,然后返回完整数组。我首先尝试制作一个新的URL数组,然后对这些URL进行编码
encodeURLHandler= (images) =>{
const expression = /[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi;
const regex = new RegExp(expression);
let urls = images.filter(img => img.match(regex))
const reader = new FileReader();
reader.readAsDataURL(urls);
reader.onload = () => {
let data = reader.result.replace(/^data:(.*;base64,)?/, '');
if ((data.length % 4) > 0) {
data += '='.repeat(4 - (data.length % 4));
}
}
这很快变得很笨拙,因为然后我必须访问旧数组,然后添加base64Encoded URL,所以我虽然可以根据条件映射对象,但问题是我的base64编码方法将完整数组作为参数,所以知道我不知道如何以最简单的方式解决这个问题。