Последняя итерация в цикле foreach с использованием Object Javascript - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть такой объект.

objName {
 item1 : someItem,
 item2 : someItem,
 item3 : someItem,
}

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

Object.keys(objName).forEach(itemNumber => {
console.log(itemNumber);
});

Как я собираюсь обнаружить самую последнюю его итерацию для выполнения нового задания?

Ответы [ 3 ]

0 голосов
/ 21 ноября 2018

Сначала найдите длину объекта, как показано ниже:

var objLength= Object.keys(objName).length;

Затем вы можете использовать вот так:

var count = 0;

Object.keys(objName).forEach(item => {
    console.log(item);
    count++;
    if (count == objLength)
    {
        console.log("endOfLoop");
    }
});
0 голосов
/ 21 ноября 2018

Вы можете передать индекс и значение в функцию forEach, как показано в приведенном ниже коде, и использовать Object.keys (objName) .length, чтобы получить длину объекта, а затем последний член objName [значение]

 var objName = {
 item1 : "someItem",
 item2 : "someItem",
 item3 : "someItem3",
}
Object.keys(objName).forEach((value, index) => {
if(index==Object.keys(objName).length-1){
  console.log(objName[value]);
}
});
0 голосов
/ 21 ноября 2018

Вы можете использовать параметры индекса и массива, чтобы проверить, есть ли следующий элемент.Вы также можете проверить, равен ли текущий индекс длине - 1 index == arr.length - 1

let objName = {
 item1 : "someItem",
 item2 : "someItem",
 item3 : "someItem",
}

Object.keys(objName).forEach((item, index, arr) => {
  console.log(item);
  if(!arr[index + 1]) console.log('End')
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...