In python there is a nice shortcut to get the index and element of an interable:
>>> arr=['a','b','c']
>>> for idx, arr in enumerate(arr):
... print (idx, arr)
...
(0, 'a')
(1, 'b')
(2, 'c')
Would the following be the same in javascript, or would it need to be a generator function instead?
function enumerate1(arr) {
let out = [];
for (let idx=0; idx<arr.length; idx++) {
let elem = arr[idx];
out.push([idx, elem]);
}
return out;
}
let arr1 = ['a','b','c'];
for (let [idx, elem] of enumerate1(arr1)) {
console.log(idx, elem);
}
// or, a bit more concise
let arr2 = ['a','b','c'];
const enumerate2 = (arr) => arr.map((idx, elem) => [idx, elem]);
for (let [idx, elem] of enumerate2(arr2)) {
console.log(idx, elem);
}