将数组转换为对象属性JavaScript
我有一个目标:将数组转换为对象属性JavaScript,javascript,arrays,object,properties,Javascript,Arrays,Object,Properties,我有一个目标: { messages: { foo: { bar: "hello" }, other: { world: "abc" } } } 我需要一个函数: var result = myFunction('messages.foo.bar'); // hello 如何创建此函数 谢谢我在这里编写了一组实用函数: 还有平面图书馆: 两者都应该适合你的需要。
{
messages: {
foo: {
bar: "hello"
},
other: {
world: "abc"
}
}
}
我需要一个函数:
var result = myFunction('messages.foo.bar'); // hello
如何创建此函数
谢谢我在这里编写了一组实用函数: 还有平面图书馆: 两者都应该适合你的需要。基本上可以归结为这样的事情:
function read(key, object) {
var keys = key.split(/[\.\[\]]/);
while (keys.length > 0) {
var key = keys.shift();
// Keys after array will be empty
if (!key) {
continue;
}
// Convert array indices from strings ('0') to integers (0)
if (key.match(/^[0-9]+$/)) {
key = parseInt(key);
}
// Short-circuit if the path being read doesn't exist
if (!object.hasOwnProperty(key)) {
return undefined;
}
object = object[key];
}
return object;
}
我不知道你想说什么,也不知道你为什么吹毛求疵。我是说,哎呀,我按Enter键是发布链接答案的糟糕借口。我不是这么说的。在您留下原始注释时,我还添加了一个真正的工作代码示例,这就是您删除第一条注释的原因。在这一点上,你比你指责我的还要糟糕。结束这场戏剧。我只是想帮忙。好的,孩子们。。。冷静深呼吸。也许去散散步;