如何将数组的元素写入txt文件,同时保持元素的顺序?

时间:2019-05-04 13:17:40

标签: javascript node.js fs

我有2个数组(长度相同),我想将内容写到txt文件中,并保持元素的顺序。 像这样:

let array1 = [1, 2, 3];
let array2 = [a, b, c];
for (id in array1) {
      fs.appendFile(`./saved_items/output.txt`, 
      `${id}: ${array1[id] + numOfCredits[id]}\r\n`, 
      function (err) {
        if (err) {
          console.log(err);
        }
      });
    }

所以输出应该是这样:

0: 1a
1: 2b
2: 3c

但是,我得到了以下输出:

1: 2b
2: 3c
0: 1a

那是为什么,我如何写入文件并保持元素的顺序?

3 个答案:

答案 0 :(得分:2)

由于appendFile是一个异步函数,因此您的代码可以按其他顺序写入数据,然后再调用它,因此应使用链式调用或使用appendFileSync函数的同步版本。

答案 1 :(得分:2)

建议替代方案:

为什么不首先循环执行appendFile,而是为什么不先构建要写入的数据,然后执行一次appendFile

let array1 = [1, 2, 3];
let array2 = [a, b, c];
let data = '';
array1.forEach((el, idx) => {
  data += `${el}: ${el + array2[idx]}\r\n`;
});
fs.appendFile(`./saved_items/output.txt`, data, function (err) {
  if (err) {
    console.log(err);
  }
})

答案 2 :(得分:1)

您可以尝试forEach并不要使用for..in进行迭代和数组化。还可以使用tblProduct.Product_Name从第二个数组中检索元素

index