使用二维数组检索文件信息

时间:2019-04-18 16:13:03

标签: arrays angular typescript file multidimensional-array

是否可以使用二维数组来捕获文件的名称及其base64内容(假设文件已预先转换)?怎么会这样呢?

我认为这将包括使用两个ngModels:

app.component.html

[(ngModel)]="userModel.fileDocs[0][0]" [(ngModel)]="userModel.fileDocs[0][1]"

第一个绑定和第二个绑定分别捕获名称和内容。

  • 第一个文件的名称为[0] [0],文件的内容为[0] [1]。
  • 第二个文件的名称为[1] [0],其内容为[1] [1]。
  • 第三个文件的名称为[2] [0],其内容为[2] [1]。
  • 第四个文件的名称为[3] [0],内容为[3] [1]。

app.component.ts

[['', ''], ['', ''], ['', ''], ['','']]

数组中的第一个数组到第四个数组将是[0-3] []数组中的第一个索引。可以通过二维数组的第二个索引[] [0-1]访问数组中的字符串。

我试图进行一次迭代,将文件名和内容添加到数组字符串中,但是结果是仅对二维数组中的数组进行了迭代。

app.component.ts


   for (let i = 0; i < modifiedUserModel.fileDocs.length; i++) {
    // Update file values from userModel to include the base64 string content and the file name
      modifiedUserModel.fileDocs[i][0] =  '{"fileName": "' +  this.elem.files[i].name + '"';
      modifiedUserModel.fileDocs[i][1] =  '"fileData": "' + this.base64result + '"}';
    }

预期结果是文件名将与2-D数组中每个数组中的第一个字符串对齐,并且将base64输入到2-D数组内容中的第二个字符串中

 "fileDocs": [
    [
      "{\"fileName\": \"output1.docx\"",
      "\"fileData\": \"base64 content Here\"}"
    ],
    [
      "{\"fileName\": \"output2.docx\"",
      "\"fileData\": \"base64 content Here\"}"
    ],
    [
      "{\"fileName\": \"output3.docx\"",
      "\"fileData\": \"base64 content Here\"}"
    ],
    [
      "{\"fileName\": \"output4.docx\"",
      "\"fileData\": \"base64 content Here\"}"
    ]
  ]

这仅在二维数组中的第一个数组上发生的实际结果。其他的仅在名称和内容字符串区域上显示文件的文件路径。另外,最后提交的文件最终成为第一个文件。我认为这与迭代有关。

 "fileDocs": [
    [
      "{\"fileName\": \"output4.docx\"",
      "\"fileData\": \"base64 content Here\"}"
    ],
    [
      "C:\\fakepath\\output2.docx",
      "C:\\fakepath\\output2.docx"
    ],
    [
      "C:\\fakepath\\output3.docx",
      "C:\\fakepath\\output3.docx"
    ],
    [
      "C:\\fakepath\\output4.docx",
      "C:\\fakepath\\output4.docx"
    ]
  ]

0 个答案:

没有答案