Как добавить столбец в 1d json массив и сохранить его в файл?

#javascript #arrays #json

#javascript #массивы #json

Вопрос:

КОНТЕКСТ

Я пытаюсь сохранить массив в текстовый файл.

Мой массив — это переменная js arrR (скажем):

[-0, 0.0016, 0.0034, 0.005, 0.0067, 0.0082, 0.0103, 0.0116, 0.0135, 0.0154, 0.017]

Приведенная ниже функция сохраняет массив в текстовый файл:

 $("#saveB").click(function () {
var diff  = 3;
var json = JSON.stringify(arrR);
var downloadLink = document.createElement("a");
var blob = new Blob(["ufeff", json]);
var url = URL.createObjectURL(blob);
downloadLink.href = url;
downloadLink.download = "data.txt";
document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);
arrR=[];
});
  

И это прекрасно работает.

ЧТО Я ХОТЕЛ БЫ СДЕЛАТЬ

Вместо того, чтобы иметь файл .txt, например:

[-0, 0.0016, 0.0034, 0.005, 0.0067, 0.0082, 0.0103, 0.0116, 0.0135, 0.0154, 0.017]

Я хотел бы иметь файл .txt или .csv, который хотел бы:

 data measured at xx
0; -0
3; 0.0016
6; 0.0034
9; 0.005
12;0.0067
15; 0.0082
18;0.0103
21; 0.0116
24; 0.0135
27; 0.0154
30; 0.017
  

где:

второй столбец файла arrR ,

первый столбец представляет собой массив, в котором все элементы равны 0,3,6 (разница diff в том, что) ,

заголовок — это текущее время.

Есть ли простой способ сделать это ?

Большое спасибо

Комментарии:

1. Вместо JSON.stringify() того, чтобы просто использовать, самостоятельно преобразуйте массив в строку в указанном вами формате.

Ответ №1:

Вы могли бы изменить

 var json = JSON.stringify(arrR);
  

Для

 const header = `data measured at ${(new Date()).toUTCString()}n`
var json = header   arrR.map((value, index) =>
       `${diff*index}; ${value}`).join('n');
  

Комментарии:

1. Отлично. Работает. Большое спасибо. Есть идеи, как добавить заголовок.

2. Удивительно! Спасибо