Javascript для () для добавления значений в массив

#javascript

#javascript

Вопрос:

У меня есть программа, которая отображает ошибки, подобные этой:

wifi: 298

Итак, в нем указан тип ошибки и номер.

Прямо сейчас есть 8 ошибок, которые я разделил по типу и числу, так что 16 значений. Я хотел бы добавить их в массив, например:

var array{тип: ‘____’, число:’____’}

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

Проблема в том.. Я ужасен в математике..

Я пробовал a для того, где i начинается с -1 и его i . Тип будет значением [i 1], а число будет значением [i 2] . Это было бы результатом:

 i=-1
type=value[0]
number=value[1]

i=0
type=value[1]
number=value[2]
  

Итак, вы видите, значение [1] появляется дважды:
0
1
1
2

Когда он должен появиться только один раз: 0 1 2 3

 var errorSplit = errorlog.split(/:|;/);

 var errors;

 for(var i=-1;i<16;i  ){
    errors= {type: errorSplit[i 1], num: errorSplit[i 2]};
}
  

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

1. не могли бы вы привести допустимый пример errorlog ?

Ответ №1:

Просто увеличивайте его на 2 на каждой итерации. Я бы также предложил небольшие изменения для удобства чтения (замена -1 на 0 и изменение процессоров индексации).

Вам нужно сделать массив ошибок фактическим массивом и добавлять в него что-то, не перезаписывая их.

Вы также можете сделать переменную длину цикла, просто используя длину errorSplit в качестве ограничителя.

  var errorSplit = errorlog.split(/:|;/);

 var errors=[]; // Make the array an actual array

 for(var i=0; i<errorSplit.length; i =2) { // Start at index 0, go until there are no errorSplit parts left, up it by 2 every iteration
    if(errorSplit.length<(i 1)) // If the index is higher than errorSplit 1, exit the loop
       break;
    errors.push({type: errorSplit[i], num: errorSplit[i 1]}); // Add the element to the array
 }