I have a js object like:
obj = {
name: 'js',
age: 20
};
now i want to access name field of obj, but i can only get string 'name', so how to convert 'name' to obj's field name, then to get result like obj.name.
Thank you in advance.
I have a js object like:
obj = {
name: 'js',
age: 20
};
now i want to access name field of obj, but i can only get string 'name', so how to convert 'name' to obj's field name, then to get result like obj.name.
Thank you in advance.
You can access the properties of javascript object using the index i.e.
var obj = {
name: 'js',
age: 20
};
var isSame = (obj["name"] == obj.name)
alert(isSame);
var nameIndex = "name"; // Now you can use nameIndex as an indexor of obj to get the value of property name.
isSame = (obj[nameIndex] == obj.name)
Check example@ : http://www.jsfiddle.net/W8EAr/
In Javascript, obj.name
is equivalent to obj['name']
, which adds the necessary indirection.
In your example:
var fieldName = 'name'
var obj = {
name: 'js',
age: 20
};
var value = obj[fieldName]; // 'js'
Not related at all, but for anyone trying to define object's field name from a string variable, you could try with:
const field = 'asdf'
const obj = {[field]: 123}
document.body.innerHTML = obj.asdf
It's quite simple, to access an object's value via a variable, you use square brackets:
var property = 'name';
var obj = {name: 'js'};
alert(obj[property]); // pops 'js'
As objects are associative arrays in javascript you can access the 'name' field as obj['name']
or obj[fieldName]
where fieldName = 'name'
.