dgvirtual Posted August 19, 2020 Share Posted August 19, 2020 I was fiddling with „Accessing Arrays with Named Indexes“ section examples of the Javascript tutorial and run into a situation I cannot explain. In short, I create an array 'person', then add elements to the array by index, and then add a third element by name. According to the tutorial, this should convert the array to an object (see here: https://www.w3schools.com/js/js_mistakes.asp) . Instead, after this I can access the variable 'person' as both an array (with two elements) and an object (or rather, a person.age property of the object). typeof 'person' reports: object. var person = []; person[0] = "John"; person[1] = "Doe"; person["age"] = 46; Here is a link to the full test: https://www.w3schools.com/code/tryit.asp?filename=GHWE7BWHX1GH Could someone explain what is happening here? Link to comment Share on other sites More sharing options...
Funce Posted August 24, 2020 Share Posted August 24, 2020 3 things to answer your questions Arrays strictly only have numerical indexes. Adding a string index converts the array to a generic object. You can access an object's properties through square bracket [] method, just like an array. Link to comment Share on other sites More sharing options...
dgvirtual Posted August 31, 2020 Author Share Posted August 31, 2020 OK, thank you, I see that adding this code: const entries = Object.entries(person) document.getElementById("demo3").innerHTML = "entries: " + entries; to my post results in printing all the object properties and values on the screen. The only thing that I cannot understand is why the `person.length` reports 2 when the length of the object is actually 3 (2 does not change if I comment out the line that ads the third property and converts the array to an object). Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now