Javascript Node js如何分离具有相同id的对 我如何合并这些块来生成一个Base64图像,我可以考虑包括那些具有相同文件ID的块。 我下面的当前实现的问题,下面的代码是,有成对的块必须被连接(用相同的文件SIDID块),以便生成完整的Base64,但是我的当前代码不能考虑这是为什么Base64中的一些不完整。

Javascript Node js如何分离具有相同id的对 我如何合并这些块来生成一个Base64图像,我可以考虑包括那些具有相同文件ID的块。 我下面的当前实现的问题,下面的代码是,有成对的块必须被连接(用相同的文件SIDID块),以便生成完整的Base64,但是我的当前代码不能考虑这是为什么Base64中的一些不完整。,javascript,node.js,Javascript,Node.js,我们将如何为每对块(包括没有成对的块)生成最终文件 当前代码实现 更新 你不需要洛达斯来实现这一点。你可能需要做一些改变,但这应该让你开始 let files = []; for (const i=0; i< chunks.length; i++) { let fileData = "" for (let j = 0; j < chunks[i].length; j++) { // Make sure to import Buffer fi

我们将如何为每对块(包括没有成对的块)生成最终文件

当前代码实现 更新 你不需要洛达斯来实现这一点。你可能需要做一些改变,但这应该让你开始

let files = [];
for (const i=0; i< chunks.length; i++) {
  let fileData = ""
  for (let j = 0; j < chunks[i].length; j++) {
    // Make sure to import Buffer
    fileData += new Buffer(chunks[i][j].data).toString('base64');
  }

  const finalFile = 'data:' + docs[0].contentType + ';base64,' + fileData;

  files.push(finalFile);
}
let files=[];
for(常数i=0;i
检查
文档[0].contentType
是否具有有效值


你可以用。Lodash有一个名为
groupBy
的函数。它所做的是,您给一个键(
files\u id
),它将根据该键对所有数据进行分组


这是一个。

属于同一文件的块被分组在
对象中,您可以看到它是一个列表列表。如果你先遍历文件,然后遍历块,你应该会有所收获

试试这样的

let files = [];
for (const i=0; i<chunks.length; i++) {
  let fileData = ""
  // Collect all chunks of a file
  for (let j = 0; j < chunks[i].length; j++) {
    fileData.push(chunks[i][j].data);
  }

  //Display the chunks using the data URI format          
  const finalFile = 'data:' + docs[0].contentType + ';base64,' + fileData.toString('base64').join('');

  files.push(finalFile);
}

let files=[];

对于(const i=0;你能用这个lodash提供你的答案吗?@Dikstra在你的
chunks
数组中发布你的实现sir第二项(
chunks[1]
)是一个包含2项的数组。
文件id
(5DBA73DCC62FD33ACD11758)因为这两个文件是相同的。所以,你想合并这两个项目,对吗?是的,合并这两个项目,然后生成最终文件。这是一个很好的回答,可以帮助我理解为什么它对你不起作用。现在我肯定可以给你一个更好的答案@JhonCaylog。
let files = [];
for (const i=0; i< chunks.length; i++) {
  let fileData = ""
  for (let j = 0; j < chunks[i].length; j++) {
    // Make sure to import Buffer
    fileData += new Buffer(chunks[i][j].data).toString('base64');
  }

  const finalFile = 'data:' + docs[0].contentType + ';base64,' + fileData;

  files.push(finalFile);
}
let files = [];
for (const i=0; i<chunks.length; i++) {
  let fileData = ""
  // Collect all chunks of a file
  for (let j = 0; j < chunks[i].length; j++) {
    fileData.push(chunks[i][j].data);
  }

  //Display the chunks using the data URI format          
  const finalFile = 'data:' + docs[0].contentType + ';base64,' + fileData.toString('base64').join('');

  files.push(finalFile);
}