javascript - Looping through array and removing items, without breaking for loop -
i have following loop, , when use splice()
remove item, 'seconds' undefined. check if it's undefined, feel there's more elegant way this. desire delete item , keep on going.
for (i = 0, len = auction.auctions.length; < len; i++) { auction = auction.auctions[i]; auction.auctions[i]['seconds'] --; if (auction.seconds < 0) { auction.auctions.splice(i, 1); } }
the array being re-indexed when .splice()
, means you'll skip on index when 1 removed, , cached .length
obsolete.
to fix it, you'd either need decrement i
after .splice()
, or iterate in reverse...
var = auction.auctions.length while (i--) { .... }
this way re-indexing doesn't affect next item in iteration, since indexing affects items current point end of array, , next item in iteration lower current point.
Comments
Post a Comment