#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
}