js for循环保持无限循环

时间:2020-01-08 12:39:12

标签: javascript jquery for-loop summernote

我真的坚持了这一部分。首先,我成功地从summernote编辑器中收集了用户上传的所有img源。但是当我尝试循环它们以检查是否将img链接编码为base64并尝试对其进行解码并将其保存在一起时。但是在我的代码中,fo循环一直无限循环。 img标签的循环列表是否存在问题?

function getAllImages() {
let images = $(".note-editable p").find('img').map(function() {
      return $(this).attr('src')
    }).get();
console.logt(images);
 let base64regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;
 let imgSrc = [];
   for(let i=0; images.length; i++){
     if(base64regex.test(images[i])) {
        console.log("["+images[i]+"]");
        let decoded=atob(images[i]);
        console.log("img decoded");
        imgSrc.push(decoded);
     } 
     else if(base64regex.test(images[i]) == false){

        console.log("["+images[i]+"]");
        imgSrc.push(images[i]);
     }      
 }
  return imgSrc;
 }

1 个答案:

答案 0 :(得分:1)

请在for循环中使用i < images.length

function getAllImages() {
let images = $(".note-editable p").find('img').map(function() {
      return $(this).attr('src')
    }).get();
console.logt(images);
 let base64regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;
 let imgSrc = [];
   for(let i=0; i < images.length; i++){
     if(base64regex.test(images[i])) {
        console.log("["+images[i]+"]");
        let decoded=atob(images[i]);
        console.log("img decoded");
        imgSrc.push(decoded);
     } 
     else if(base64regex.test(images[i]) == false){

        console.log("["+images[i]+"]");
        imgSrc.push(images[i]);
     }      
 }
  return imgSrc;
 }