How to convert string as object's field name in javascript
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'
.