2015-09-05 6 views
0

Хорошо, я пытаюсь скопировать раздел большого массива в массив объектов. Большой массив - это строка из листа google, который представляет данные RMA. Малый массив содержит несколько (схемных) объектов платы. Я читаю 4 элемента из большого массива в каждую «доску». Чтобы прочитать правильный элемент из большого массива, мне нужно увеличить оператор до чтения в новом именованном свойстве в моем объекте в моем маленьком массиве. Если бы я использовал массив для «доски», это было бы легко: создать дополнительный цикл и увеличить индекс на каждой итерации. Но поскольку я использую объект, я не знаю, как это сделать. Я попытался использовать выражение в своем индексе (см. Код). Кроме того, btw все это происходит внутри более крупного объекта, предназначенного для чтения в нескольких строках с листа Google и обработки их. Вот код:Могу ли я использовать выражение как индекс массива в javascript?

board: 
      [ 
      { 
      code: "Board Code", 
      software: "S-Ver", 
      problem: "Problem", 
      riu: "RiU", 
      msqNotes: "MSq Notes" 
      } 
      ], 
grab: function (rowArray, board) 
      { 
      rma.timestamp = rowArray[1]; 
      rma.guidelinesAgree = rowArray[2]; 
      rma.expediteyn = rowArray[3]; 
      rma.contact.name = rowArray[4]; 
      rma.contact.coName = rowArray[5]; 
      rma.contact.emailAddr = rowArray[6]; 
      rma.contact.telNum = rowArray[7]; 
      rma.contact.shipAddr = rowArray[8]; 
      var boardArray = rma.createBoardArray(); 
      var boardStartIndex = 9; 
      for(i = 0; i< 5; i++) 
      { 
      var k = i + 1; 
      board.push() 
      board[k].code = rowArray[boardStartIndex + 4i]; //prob here 
      board[k].software = rowArray[boardStartIndex + 4i + 1]; 
      board[k].problem = rowArray[boardStartIndex + 4i + 2]; 
      board[k].riu = rowArray[boardStartIndex + 4i + 3]; 
      board[k].msqNotes = ""; 
      } 

Примечание: В редакторе скриптов Google, когда я пытаюсь отладки, я получаю ошибку: «Отсутствующие] в индексном выражении» на строке, которую я назвал здесь «// prob здесь».

Другое примечание: Я использую выражение «k» для индекса, потому что я намеренно инициализировал массив «доска» с помощью платы [0], которая содержит значения заголовка .... Я хочу создать документ google afterword с таблицей, в которой первая строка заполнена заголовками/ярлыками для каждого столбца, и я использую первый объект для хранения этих названий. Раньше я использовал «плату [i + 1] .code =» и т. Д.

ЯВЛЯЕТСЯ ПУТЕМ ИСПОЛЬЗОВАНИЯ ЭКСПРЕССИИ ДЛЯ ИНДЕКСА МАССИВА, КОТОРАЯ КОШЕР В JS?

+3

что означает '4i'? это не действительный идентификатор. –

+0

«i» - это переменная цикла [increment] - см. Инструкцию «for». –

+0

Вы, вероятно, имеете в виду '4 * i'. Вы можете использовать любое произвольное выражение как индекс массива, если это выражение приводит к числу. Также 'board.push()' ничего не делает. Возможно, вы имели в виду 'board.push ({})'. – SpiderPig

ответ

0

Это ошибка синтаксиса:

rowArray[boardStartIndex + 4i] 

Я предполагаю, что вы имели в виду это:

rowArray[boardStartIndex + 4 * i] 

Я знаю, что в математике & науки "4i" означает "4 раза я", но в Javascript вы должны использовать оператор «*».

+0

* лицоpalm * ... большое спасибо! –

Смежные вопросы