Разбор только части ассоциативного массива с именами переменных (не фиксированных) - PullRequest
0 голосов
/ 25 сентября 2018

Я пытаюсь разобрать ассоциативный массив и отобразить результаты в определенных div на странице.Вот начало моего кода.

var tabNames = [];
var tabContent = [];

@foreach (var et in Model.EventTabs)
{
    //build list of tab names
    @:tabNames.push("@et.TabTitle");

    foreach (var e in @et.Events)
    {
     //build nested list of tab content
     @:tabContent.push({ @et.TabTitle: [{ title: '@e.Title', img: '@e.Image.Src', url: '@Html.Raw(@ShowIfNotEmptyURL(@e.DestinationLink))', start: ' @helpers.FormatHelper.RenderSitecoreDay(@e.StartDatetime) @helpers.FormatHelper.RenderSitecoreMonth(@e.StartDatetime).Substring(0, 3), @helpers.FormatHelper.RenderSitecoreYear(@e.StartDatetime)', time: '@e.TimeDescription' }] });
    }
}

Итак, я строю два массива, один с именами вкладок и соответствующим содержимым вкладок.Массив tabName работает по назначению, поэтому я пропущу его и перейду к части, с которой я борюсь, к массиву tabContent.

Вы заметите, что в массиве tabContent первое свойство являетсяпеременная бритва (@ et.TabTitle) .Мне нужно, чтобы это была переменная, так как этот массив извлекает данные из полей Sitecore, и я не буду знать, каково значение, поэтому мне нужно сохранить его переменным (хотя, если есть лучший способ сделать это, я 'все уши).

Массив создается нормально, вот пример вывода.

// из журнала консоли

Array [ Object, Object, Object, Object ]

0:Object
  TabName1
      0:Object
          title: Event title 1
          img: "/~/media/images/one.png"

...

3:Object
   TabName2
      0:Object
          title: Event title 3
          img: "/~/media/images/two.png"

Пока все хорошо, у меня есть два "раздела" (tabName1 и tabName2, считанные из полей Sitecore), однако яне могу понять, как бы я прочитал значения в первом «разделе» (tabName1) и остановился, когда он нажал tabName2.

Сначала я подумал, может быть, я смогу сделать это с помощью команды соединения javascript (tabContent.splice ()), однако я не уверен, как сказать команде соединения, чтобы она читала из первого раздела во второйтак как я не буду знать имена верхнего уровня в массиве.

Тогда я подумал, может быть, что-то вроде «посчитать количество вхождений имени верхнего уровня», но опять же, не уверен, как это сделать, если это переменная.

Так что я застрял.Я был бы очень признателен за любые ваши предложения, так как, вероятно, есть гораздо лучший / более чистый способ создания этого типа массива и его сегментов.

Или вы могли бы предположить, что построение двух массивов будетлучше, так как мне не пришлось бы пытаться выделить один массив, и я был бы в порядке с этим, я просто не уверен, как разделить данные во время создания массива, так как я просто зацикливаюсьчерез все элементы в Sitecore, и он создает один большой список.

спасибо всем!

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