根据条件对数组对象执行操作

时间:2018-11-30 17:03:21

标签: javascript arrays reactjs dictionary filter

我有一个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编码方法将完整数组作为参数,所以知道我不知道如何以最简单的方式解决这个问题。

0 个答案:

没有答案