如何通过字符串作为括号表示法在javascript中获取嵌套对象
How to get nested objects in javascript by an string as a bracket notation?
我想要一个javascript中的方法,它可以获取一个字符串作为参数,并从嵌套对象返回一个值,如:
var obj = {
place: {
cuntry: 'Iran',
city: 'Tehran',
block: 68,
info: {
name :'Saeid',
age: 22
}
}
};
function getValue(st) {
// st: 'place[info][name]'
return obj['place']['info']['name'] // or obj.place.info.name
}
您的用例的一个可能的解决方案:
function getValue(st, obj) {
return st.replace(/'[([^']]+)]/g, '.$1').split('.').reduce(function(o, p) {
return o[p];
}, obj);
}
console.log( getValue('place[info][name]', obj) ); // "Saeid"
console.log( getValue('place.info.age', obj) ); // 22
你能以"[‘a']['b']['c']"的形式输入吗?
function getValue(st) {
// st: "['place']['info']['name']"
return eval("obj"+st);
}
您可以将转换应用于任何字符串并获得结果。
编辑:
不要直接在代码库中使用Eval。它是邪恶的!
相关文章:
- 使用Javascript获取所选选项ID
- 可以't使用JavaScript获取width属性
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- Javascript获取上一个元素的内容
- 使用Javascript获取Twitter访问令牌
- 在不同的文件中使用Javascript获取表单数据
- 如何用javascript获取谷歌地图的经度和纬度
- 使用javascript获取表的td值
- 如何使用JavaScript获取当前URL
- 如何在谷歌网站中使用javascript获取当前页面的网址
- Javascript获取所有锚链接的索引
- 如何使用javascript获取从指定文件夹创建的所有文件的名称、大小、类型和日期
- Javascript获取具有不同id的文件数's来自没有多个属性的文件输入元素
- 如何使用javascript获取下一个/转发url
- 需要使用javascript获取输入文本,然后将其添加到句子中
- 使用JavaScript获取Gridview单元格值
- 使用javascript获取跨度的文本
- 如何使用Javascript获取POST请求填充的元素的值
- JavaScript-获取数据属性的值返回未定义的值
- Javascript:获取“;FORM”;它是在.html到外部.js文件中创建的