My friend asked me a simple JavaScript question last night… or so I thought.
The premise is that we have a javascript object like this:
var object = {
1: {
items: ['a','b','c']
}
}
Now the question is, how do you access that items array?
From what I know:
- An object’s keys are stringified so that they are strings.
- Using object.X is the same as writing object[‘X’] .
So, I told my friend that we can access that items array by using object.1.items or object[‘1’].items .
However, object[‘1’].items worked, while object.1.items threw an error! To my surprise, object[1].items also worked!
Now let’s say the javascript object is like this:
var object = {
one: {
items: ['a','b','c']
}
}
In this second case, I tested it in the Chrome browser console and confirmed that it is how I originally thought it would work: object[‘one’].items and object.one.items both work (and object[one].items does not work).
I think I will just use the object[‘X’] format since it works in both cases: when the key is a number and when it is a word.
I still don’t know the reason for the quirkiness when the key is an integer, so feel free to leave a comment and let me know!