Не считывается свойство объекта в JavaScript

281
23 февраля 2018, 19:53

В самом конце программы нужны удалить некоторые объекты, но в переменную b не записывается значение свойства endSrv

var client = []; 
 
client[1] = { 
  intervalVhod: 5, 
  intervalSrv: 11, 
  input: 5, 
  startSrv: 5, 
  endSrv: 16, 
}; 
 
console.log(client[1]); 
 
for (var i = 2; i < 30; i++) { 
 
 
  var intervalVhod = Math.floor(Math.random() * (7 - 2) + 2); 
  var intervalSrv = Math.floor(Math.random() * (16 - 2) + 2); 
  var startSrv; 
 
  client[i] = { 
    intervalVhod: intervalVhod, 
    intervalSrv: intervalSrv, 
  }; 
 
  var input = client[i - 1].input + client[i - 1].intervalVhod; 
 
 
  if (input < client[i - 1].endSrv) { 
    startSrv = client[i - 1].endSrv 
  } else { 
    startSrv = input 
  }; 
 
  client[i].input = input; 
  client[i].startSrv = startSrv; 
  client[i].endSrv = startSrv + intervalSrv; 
 
 
  console.log(client[i]); 
 
} 
 
 
for (var i = 2; i < 30; i++) { 
  var a = client[i + 2].input; 
  var b = client[i - 1].endSrv; 
  console.log("i=",i," a=",a, " b=",b); 
  if (a < b) { 
    delete client[i + 2] 
  } else {}; 
};

Answer 1

Вы отпиливаете сук

delete client[i + 2];

на который собираетесь залезть через три итерации

var b = client[i - 1].endSrv;

Update

Вы можете собирать индексы элементов, которые надо удалить, в отдельный массив и потом пройти по этому массиву (с конца к началу), удаляя из client элементы на соответствующих местах, используя метод splice (https://www.w3schools.com/jsref/jsref_splice.asp). Или удалять сразу, но тогда надо помнить, что массив client будет уменьшаться в процессе того, как Вы по нему итерируете.

Даже если Вы ничего не удалите из client, Вас ждет неприятный сюрприз в конце цикла, когда Вы выйдете за границу массива: var a = client[i + 2].input; при i = 28.

READ ALSO
Сместить анимацию, как сделать?

Сместить анимацию, как сделать?

Сместить анимацию, как сделать? Помогите пожалуйста сделать так, чтобы на фоне было вот это изображение и ракета сначала была маленькой рядом...

250
Импорт переменных в js

Импорт переменных в js

ПодскажитеЕсть файл settings

262
Рендер отдельного компонента React

Рендер отдельного компонента React

Постараюсь правильно описать вопрос

289
Как кастомизировать дизайн dropzone.js

Как кастомизировать дизайн dropzone.js

Допустим у нас имеется поле drag & drop в которое мы помещаем img файлы, как изменить дизайн previewTemplate?

258