let arr;
let keys;
function init() {
keys = [];
if (Math.random() > 0.5) {
arr = { a: Math.random(), b: Math.random(), c: Math.random(), d : Math.random()};
} else {
arr = [Math.random(),Math.random(),Math.random(),Math.random()];
}
}
function* iterate_keys(arr) {
if(arr.constructor === Object) {
let key = "";
for (key in arr) yield key;
} else {
for (let i = 0; i < arr.length; i++) yield i;
}
}
init();
let i = 0;
if(arr.constructor === Object) {
let key = "";
for (key in arr) keys[i++] = key;
} else {
for (; i < arr.length; i++) keys[i] = i;
}
init();
keys = Object.keys(arr);
init();
let i = 0;
for(const key of iterate_keys(arr)) {
keys[i++] = key;
}