Как сохранить данные цикла в нескольких объектах JSON - PullRequest
2 голосов
/ 15 мая 2019

У меня есть несколько переменных в цикле, которые необходимо сохранить в формате JSON.Но нужно убедиться, что следующий цикл повторяется, ранее созданный JSON не перезаписывается.

try {
  ayats.forEach(function(element) {
    if (element.toLowerCase().includes(request.params.find.toLowerCase())===true)
    {
      counting++;
      element=JSON.parse(element);
      Surah_Name = element.SuratName;
      Ayat_No = element.AyatNo;
      x = "In Surah "+ element.SuratName+", Ayat Number: "+element.AyatNo+", Quran says: "+ element.Translation;

      // Here some logic to save Surah_Name, Ayat_No and x in JSON
    }
  }
}

Требуемый вывод такой:

{
 "data1":{"Surah_Name": Surah_Name,"Ayat_No": Ayat_No, "x":x},
 "data2":{"Surah_Name": Surah_Name,"Ayat_No": Ayat_No, "x":x},
 "data3":{"Surah_Name": Surah_Name,"Ayat_No": Ayat_No, "x":x},
}

Ответы [ 2 ]

1 голос
/ 15 мая 2019
var result = {};
var counting = 0;

ayats.forEach(function (element) {
  if (!element.toLowerCase().includes(request.params.find.toLowerCase())) return; //return means skip(continue)
  element = JSON.parse(element);
  Surah_Name = element.SuratName;
  Ayat_No = element.AyatNo;

  // Here some logic to achieve the required output
  result[`data${++counting}`] = {
    Surah_Name: Surah_Name,
    Ayat_No: Ayat_No,
    x: `"In Surah: ${Surah_Name} Ayat Number: ${Ayat_No} Quran says: ${element.Translation}`
  };
})

console.log(result)
1 голос
/ 15 мая 2019

Попробуйте:

function getData(ayats){

const parentObj={};
let counting=0;
  ayats.forEach(function(element) {
    if (element.toLowerCase().includes(request.params.find.toLowerCase())===true)
    {
      counting++;
      element=JSON.parse(element);
      Surah_Name = element.SuratName;
      Ayat_No = element.AyatNo;
      x = "In Surah "+ element.SuratName+", Ayat Number: "+element.AyatNo+", Quran says: "+ element.Translation;
      const tempObj={
        Surah_Name,
        Ayat_No,
        x
      }
      parentObj[`data${counting}`]=tempObj
      // Here some logic to achieve the required output
    }
  })
  return parentObj;
}

console.log(getData(ayats))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...