Я хотел бы проверить каждый объект, если следующий объект имеет timeTrigger. Если это так, но когда скрипт находится на втором последнем объекте, это даст мне ошибку Uncaught TypeError: Cannot read property 'timeTrigger' of undefined
. Как я могу сделать исключение, так что, если в массиве нет следующего объекта, он все равно будет делать что-то внутри оператора if?Как сделать исключение для последнего объекта в массиве?
var index = 0;
// Loop through array of data (JSON data) and check if timeTrigger exists
for (var i = 0; i < root.objectArr.length; i++) {
var timeTrigger = root.objectArr[i].timeTrigger;
// console.log(timeTrigger);
index++;
if (curVideoTime >= root.objectArr[i].timeTrigger && (root.objectArr[i + 1].timeTrigger != undefined && curVideoTime < root.objectArr[i + 1].timeTrigger)) {
if (root.objectArr[i].timeTrigger != root.triggeredId) {
root.triggeredId = root.objectArr[i].timeTrigger;
dataController.triggeredEvent(index, timeTrigger);
}
}
// If curVideoTime 5sec == call function
if (curVideoTime > root.objectArr[i].timeTrigger && root.objectArr[i + 1].timeTrigger < curVideoTime) dataController.previousEvents(timeTrigger);
if (curVideoTime < root.objectArr[i].timeTrigger) dataController.nextEvents(timeTrigger);
}
Вы хотите, чтобы пропустить текущую итерацию, когда объект не определен? – AtheistP3ace
Проверьте и посмотрите, есть ли 'Object.key (root.objectArr) 'существует –
Да, поэтому внутри оператора if должно быть еще несколько строк кода, которые проверяют, существует ли последний объект в массиве, и если это так, следующий объект будет проигнорирован. Таким образом, последний элемент будет отображаться также на мой взгляд. – Caspert