'Possible to add a nonArray property key with array literal notation?
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);
}
Solution 1:[1]
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);
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Majed Badawi |
