当前位置: 首页 > 面试题库 >

Javascript:通过将对象的路径作为字符串传递给对象,从而获得深层价值

宦琪
2023-03-14
问题内容

我正在尝试创建返回对象值的函数,但也可以很好地处理嵌套对象。例如:

var obj = {
  foo: { bar: 'baz' }
};

我想通过向函数提供字符串“ foo.bar”来访问obj.foo.bar的值。

function(obj, path) {
  // Path can be "foo.bar", or just "foo".
}

谢谢!


问题答案:

考虑一下:

var obj = {
  foo: { bar: 'baz' }
};

function deepFind(obj, path) {
  var paths = path.split('.')
    , current = obj
    , i;

  for (i = 0; i < paths.length; ++i) {
    if (current[paths[i]] == undefined) {
      return undefined;
    } else {
      current = current[paths[i]];
    }
  }
  return current;
}

console.log(deepFind(obj, 'foo.bar'))


 类似资料:
  • 问题内容: 我想知道是否有可能使用jQuery AJAX函数将数组传递给php函数。我有以下作为我的JavaScript 当我尝试执行以下操作时 我在PHP中将其作为“数组”接收。如何正确发送对象,以便PHP函数可以使用它? 问题答案: 从第二个ajax中,您可以根据属性名称访问数据,例如: 是在php中以关联数组转换的js对象

  • 问题内容: 我在php中有对象,每个对象代表一个“项目”以及与之相关的所有信息。 当用户浏览页面时,这些对象应传递给javascript。理想情况下,镜像相同的结构,因此我可以使用Raphael在我的网站上将每个项目及其信息显示为单独的形状。 但是,如何将对象从php转换为javascript? 问题答案: 您可以将PHP对象转换为数组,然后使用JSON函数对其进行编码。之后,从JavaScrip

  • 问题内容: 我有一个像这样的数据结构: 我想使用这些变量访问数据: part1name应该用的值(即“第1部分”)填充。part2quantity填充60。 无论如何,可以使用纯JavaScript或JQuery来实现这一目标? 问题答案: 我只是根据已经拥有的一些类似代码制作的,它似乎可以工作: 用法:: 编辑一些人已经注意到,如果传递的字符串最左边的索引与对象内正确嵌套的条目不对应,则此代码将

  • 问题内容: 我有以下内容,但它不起作用,我在stackoverflow上的某个地方读到了它的工作原理,但我似乎无法使其工作..它出错了……我在做错什么吗? 如果我确实传递了这样的数据-它可以工作-所以我知道我的服务正在工作 问题答案: 我相信代码将在对象上调用.value或.toString(),然后通过网络传递。您想传递JSON。 因此,包括JSON JavaScript库 http://www

  • 问题内容: 我有一个对象,其中包含多个通用键值道具,我想将它们传递给一些jsx。像这样: 我希望这可以作为传递单个道具的功能: 这可能吗? 问题答案: 这可能吗? 是的,为什么您认为不可能,但是发送方式不正确。 的含义是: 因此,如果您默认不指定任何值,它将采用。要传递对象,您需要这样编写: 更新: 如果您有一个对象,并且希望将所有属性作为单独的属性传递,则将其编写为:

  • 问题内容: 我很难将Flask / Python变量传递给Javascript。 基本上,我是从MySQL导入的,并尝试以三种不同的方式呈现返回值。 那是我的dict项目上运行以下命令时的输出。 此方法不好,但是我添加了详细信息,根本不是正确的格式。 我直接将python dict传递给看起来像这样的模板 然后在模板方面,我尝试了以下JavaScript行 没有一个可以一起工作或单独工作。 我也尝