Выполнить операцию над объектами массива в зависимости от условия - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть массив объектов 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));
        }

}

. Это быстро становится немного неуклюжим, потому что тогда мне пришлось получить доступ к старому массиву, а затем добавить URL-адреса base64Encoded, поэтому яЯ мог бы отобразить объекты на основе условия, проблема в том, что мои методы кодирования base64 принимают полный массив в качестве параметра, поэтому я не знаю, как решить эту проблему самым простым способом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...