我需要帮助在JS中使用String获取对象的属性。
我有对象
function getObjectByStringIdentifier ( stringId ) {
return elements[stringId];
}
我有JS功能,输入是" element.date.day" 。和 基本上我需要做这样的事情:
CREATE TABLE t
(`id` int, `name` varchar(4), `type` int)
;
INSERT INTO t
(`id`, `name`, `type`)
VALUES
(1, 'vinu', 1),
(2, 'rinu', 2),
(3, 'dilu', 1),
(4, 'raju', 2),
(5, 'manu', 3),
(6, 'saju', 3),
(7, 'ragu', 3),
(8, 'sonu', 1),
(9, 'sam', 1),
(10, 'rag', 1)
;
这可能在JS吗?
答案 0 :(得分:1)
你可以做这样的事情
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"));
&#13;
答案 1 :(得分:0)
您可以这样做:
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"));
&#13;
答案 2 :(得分:0)
是你可以! : - )
var elements = {
element : {
date: {
day: 'Monday'
}
}
}
function getObjectByStringIdentifier ( stringId ) {
//return elements[stringId];
// ^ ^
// | |
// |------|---------------------------------------------|
// | |
// -----------| |
// | |
// ° °
return stringId.split('.').reduce(function(t,v){return t[v]; } , elements)
}
/** let's test it now ! **/
var stringIdentifier = "element.date.day";
var result = getObjectByStringIdentifier( stringIdentifier );
document.getElementById('el').innerHTML = result;
&#13;
<div id='el'></div>
&#13;
答案 3 :(得分:-1)
现代浏览器支持JSON.parse()。
var arr_from_json = JSON.parse( json_string );
在没有的浏览器中,您可以包含json2库。
alert(arr_from_json.elements);