Let's say I have an array and then I add a non-array-index object property to it:
let a = [1,2,3];
a['tobey'] = 'marguire';
for (let [idx, elem] of Object.entries(a)) {
console.log(idx, '==>', elem);
}
Is there a way to do this directly with the literal notation, or does it need to be added separately using only dot/bracket setter notation?I suppose one way might be this, but maybe it doesn't make the intent clear:
let a = {...[1,2,3], tobey: 'maguire'};
for (let [idx, elem] of Object.entries(a)) {
console.log(idx, '==>', elem);
}
I don't recommend this, but one way would be the following:
const a = [1,2,3];
Object.defineProperty(a, 'tobey', { value: 'maguire', enumerable: true });
for (let [idx, elem] of Object.entries(a)) {
console.log(idx, '==>', elem);
}