Я пытаюсь получить объект JSON из коллекции Mongo, в которой есть вложенные массивы.Объект plantResult в моей базе данных выглядит следующим образом:
{
"_id" : ObjectId("5bc97b175c3e221086646b95"),
"username" : "test-user",
"tentname" : "Tent1",
"startdate" : "2018-06-06",
"notes" : "No notes",
"vegnutrients" : "grow1,grow2",
"vegnutrientsvalues" : [
[
{
"_id" : ObjectId("5bc68c91296be70081afdeff"),
"nutrientname" : "grow",
"description" : "Test Grow",
"week1" : 6,
"week2" : 6,
"week3" : 12,
"week4" : 14,
"week5" : 8,
"week6" : 0,
"week7" : 0,
"week8" : 0,
"week9" : 0,
"week10" : 0
}
],
[ ]
],
"growmedium" : "soil"
}
, и я отображаю страницу с помощью EJS и Express в моем файле маршрутизатора следующим образом:
res.render('viewplant', { username: uname, tentname: tentname, resultData: plantResult } );
, а затем я пытаюсь выполнить итерациючерез результаты и захватите значения week1
для каждого элемента в массиве vegnutrientsvalues
, пытаясь это сделать:
<script>
var vegnutrients = "<%= resultData[0].vegnutrients %>";
//delimit on comma and add individual nutrients to array
var finalveg = vegnutrients.split(",");
for (var i = 0; i < finalveg.length; i++) {
//WHY CANT IT USE i TO ITERATE THROUGH vegnutrientvalues????
var finalvnd = "<%= resultData[0].vegnutrientsvalues %>";
console.log(finalvnd[i][0].week1);
}
</script>
Но затем консоль читает undefined
, а отладчик показывает это:
var finalvnd = "[object Object],";
console.log(finalvnd[i][0].week1);
Но когда я получаю данные напрямую следующим образом:
var finalvnd = "<%= resultData[0].vegnutrientsvalues[0][0].week1 %>";
console.log(finalvnd);
Он записывает правильное значение на консоль, поэтому я знаю, что данные есть, я просто не знаю, как правильно получить к ним доступ,Я хочу использовать i
из цикла for в качестве индекса, чтобы получить значение недели1 текущего питательного вещества.Кто-нибудь видит, где я иду не так?