I need help with getting property of object with String in JS.
I have object
elements = {
element : {
date: {
day: 'Monday'
}
}
}
and i have JS function where input is "element.date.day". And
basically i need to do something like this:
function getObjectByStringIdentifier ( stringId ) {
return elements[stringId];
}
is this possible in JS ?
You can do something like this
var elements = {
element: {
date: {
day: 'Monday'
},
example: {
abc: 'hii'
}
}
};
function getObjectByStringIdentifier(stringId) {
stringId = stringId.split('.');
// split string using `.`
var res = elements;
// define res as object
for (var i = 0; i < stringId.length; i++)
// iterate over array
res = res[stringId[i]]
// update res as inner object value
return res;
// return result
}
console.log(getObjectByStringIdentifier("element.date.day"));
console.log(getObjectByStringIdentifier("element.example.abc"));
You can do something like this :
var elements = {
element : {
date: {
day: 'Monday'
}
},
cars : {
racing : "Lamborghini",
classic: "Rolls Royce"
}
}
function getObjectByStringIdentifier ( stringId ) {
objects = stringId.split(".");
element = elements;
for(i=0; i < objects.length; i++)
element = element[objects[i]];
return element;
}
alert(getObjectByStringIdentifier("cars.racing"));
alert(getObjectByStringIdentifier("element.date.day"));
alert(getObjectByStringIdentifier("cars.classic"));
Modern browsers support JSON.parse().
var arr_from_json = JSON.parse( json_string );
In browsers that don't, you can include the json2 library.
alert(arr_from_json.elements);