简体   繁体   中英

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); }

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); }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM