JSFiddle - React, Tailwind, and code Playground
HTML
<script src="http://nervgh.github.io/js/recursive-iterator.min.js"></script>
JavaScript
var arr = [1,2,3];
for(var item of new RecursiveIterator(arr, 1, true, 1)) {
arr.length = 0;
console.log('arr=', arr, 'item=', item.node);
}
var object = {a:true, b:NaN};
for(var item of new RecursiveIterator(object, 1, true, 1)) {
object = {};
console.log('object=', object, 'item=', item.node);
}