Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数组转换为对象属性JavaScript_Javascript_Arrays_Object_Properties - Fatal编程技术网

将数组转换为对象属性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键是发布链接答案的糟糕借口。我不是这么说的。在您留下原始注释时,我还添加了一个真正的工作代码示例,这就是您删除第一条注释的原因。在这一点上,你比你指责我的还要糟糕。结束这场戏剧。我只是想帮忙。好的,孩子们。。。冷静深呼吸。也许去散散步;