如何在具有正确索引的数组中添加值?

时间:2018-07-21 12:06:52

标签: javascript jquery arrays

我有一个数组。我正在做的是当用户单击“上传”按钮时 <input type="files[]" name="file" multiple。因此,我允许用户删除已经添加的文件。

  var arr = [];

        var filteredAry = [];

        var k = 0;

        var fileupload_step3 = document.getElementById("FileUploadStep3");

        $('.upload_3').on('click',function(){

          $('.alert_text_step3').html('');

          fileupload_step3.click();

        });


       fileupload_step3.onchange =  function () {

         var total_files = document.getElementById("FileUploadStep3").files.length

         var imageName = '';

         if(filteredAry.length > 0)
         {

           k = filteredAry.length;

           console.log(`length: ${k}`);

           console.log(`${total_files}`);

           for(i = k ; i<=total_files; i++)
           {
              console.log(i);

              imageName = $('#FileUploadStep3')[0].files[i].name;

               arr.push($('#FileUploadStep3')[0].files[i]);

               $('.file_up_3').append(`<li class="remove-id-${i}"><span class="remove-file remove-file-3 btn f-20 mr-2" data-3-id="${i}">X</span>&nbsp;<span>${imageName}</span></li>`);

           }

         }
         else
        {

          for(i = k ; i<total_files; i++)
          {
              imageName = $('#FileUploadStep3')[0].files[i].name;

              arr.push($('#FileUploadStep3')[0].files[i]);

              $('.file_up_3').append(`<li class="remove-id-${i}"><span class="remove-file remove-file-3 btn f-20 mr-2" data-3-id="${i}">X</span>&nbsp;<span>${imageName}</span></li>`);

          }

        }

       }

       $(document).on('click','.remove-file-3',function(){

         var seleced = $(this).attr('data-3-id');

         $(`.remove-id-${seleced}`).remove();

         filteredAry = arr.filter(function(e) { return e !== arr[seleced] })

         arr = filteredAry

         console.log(filteredAry);

       });

我所做的是,当用户上传文件时,它进入一个数组。当用户单击“删除”时,它将删除该特定文件而保留在其他文件后面。一切正常,但是假设用户最初选择了三个文件并删除了其中一个,然后将这两个保留了下来。现在,如果他再次单击上传按钮。然后,我试图在数组中添加下一个索引。

就像是否有[file1,file2]一样,我希望file3在那里并且索引为2。但是,这没有发生。如果我离开i=0,那么如果用户删除了.remove-id-${seleced},它将把remove-id-0添加为remove-id-2。在这里做什么?

0 个答案:

没有答案