Situation
I have a JSON object which is returned. And Below is an example of one. The who
in this particular example can change to whatever property name is required. So for example next time this will be name
rather than who
[{"who":"Arthur"},{"who":"Craig"},{"who":"Dan"},{"who":"Daniel"},{"who":"Frank"},{"who":"Ian"},{"who":"jamie"},{"who":"Jason"},{"who":"jaz"},{"who":"Liam"},{"who":"Paul"},{"who":"Shaun"},{"who":"Wayne"}]
Problem
In my JS I need to be able to refer to the property and access its data without using its name as the name will always be something different.
What I have tried
data.forEach(function(m){ console.info(m); // Object { who="Craig"} console.info(m.who); // Craig, as expected console.info(m[0]); // now not sure who to get it if who changes to name });
To dynamically access an object's property: Use keyof typeof obj as the type of the dynamic key, e.g. type ObjectKey = keyof typeof obj; . Use bracket notation to access the object's property, e.g. obj[myVar] .
To get object property name with JavaScript, we use the Object. keys method. const result = Object. keys(myVar); console.
An object property can be accessed in two ways. One is . property and the other is [property].
Object.keys(m)[0]
should return the first enumerable property name in the object m
.
So if m = {"who": "Arthur"};
then m[Object.keys(m)[0]]
will be "Arthur"
.
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/keys
Alternatively: Object.values(m)[0]
. See Object.values
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With