如何从javascript中的值获取对象值的路径

2023-12-15

Example:

var someObject = {
'part1' : {
    'name': 'Part 1',
    'txt': 'example',
},
'part2' : {
    'name': 'Part 2',
    'size': '15',
    'qty' : '60'
},
'part3' : [
    {
        'name': 'Part 3A',
        'size': '10',
        'qty' : '20'
    }, {
        'name': '[value]',
        'size': '5',
        'qty' : '20'
    }, {
        'name': 'Part 3C',
        'size': '7.5',
        'qty' : '20'
    }
]};

我需要一个函数来获取对象到值的路径"[value]"可以是物体上的任何地方

该对象将由用户传递,因此我不知道它的结构。

就像是:

getPath(obj, '[value]');

下面是一些代码,应该可以为您提供指向对象的路径,但不确定它有多安全:

function getPath(obj, val, path) {
   path = path || "";
   var fullpath = "";
   for (var b in obj) {
      if (obj[b] === val) {
         return (path + "/" + b);
      }
      else if (typeof obj[b] === "object") {
         fullpath = getPath(obj[b], val, path + "/" + b) || fullpath;
      }
   }
   return fullpath;
}

Where testObj是您示例中的对象:

console.log(getPath(testObj, '20'));      // Prints: /part3/2/qty
console.log(getPath(testObj, "[value]")); // Prints: /part3/1/name
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从javascript中的值获取对象值的路径 的相关文章

随机推荐

  • MVC 验证消息国际化

    例如 我想要这个默认的 ASP NET MVC 4 验证消息 The value qsdqsdqs is not valid for Montant以法语显示 我找到了这个包http nuget org packages Microsoft
  • 从对象数组键/值映射数组

    我需要获取一个数组对象并将其映射 以便新数组只是一个简单的数组 如果每个对象都有 id 例如 id 49 name Rest update test id 12 name Rest test 会成为 49 12 到目前为止我已经尝试过了 m
  • 实例化新的内部类时是否需要关键字“this”?

    Oracle Java SE 教程中的另一个示例 它工作正常 但我不确定创建内部类的实例时是否 为什么需要 this 不管我是否取出来 结果似乎都是一样的 为了清楚起见 我指的是 InnerEvenIterator 迭代器 this new
  • 如何将块 div 的角倒角?

    我有以下 HTML 文档
  • 如何解决curl:(35)错误

    如果我在 CentOS 5 机器上运行以下命令 curl LsS https symfony com installer o usr local bin symfony 我收到此错误 curl 35 error 14077410 SSL r
  • 调试闭包编译器编译的 Javascript

    我有一个复杂的 dojo 应用程序 可以在未编译的情况下正常工作 但在使用 Google 编译后闭包编译器 我在某些行为上发现了细微的差异 事实上 调试起来非常困难 而且我无法找到任何有关使用 Google Closure 编译和未编译的
  • 页面请求中的 UTF-8 字节序列无效

    我在页面请求 永久链接 上收到 UTF 8 中的无效字节序列 我不知道为什么也无法重现它 但我确实遇到了很多这样的异常 A ArgumentError occurred in products index invalid byte sequ
  • URL解码混乱

    我有一个引用以下网址的数据库 http en wikipedia org wiki Herbert Gr F6nemeyer 然而 这似乎是一个错误的 URLEncoding 导致 HttpUtility UrlDecode 给我垃圾 和
  • 如何将 django Rest Framework json 查询结果连接到 dgrid/OnDemandGrid

    我的 JSON 存储 django Rest 框架 返回 count next previous 和 results 的键 count 是可用的行数 下一页 是下一页结果的 URL 例如 ids 26 50 previous 是上一页结果的
  • 获取在后台运行的 Java 运行时进程

    我正在编写一个java应用程序 我需要在正在运行的应用程序的整个生命周期中在后台运行一个进程 这是我所拥有的 Runtime getRuntime exec this works ok Process p Runtime getRuntim
  • 是否有一个真正有效的示例来显示 x86_64 上存储加载重新排序的副作用?

    众所周知 在 x86 64 上可以进行 Store Load 重新排序 如果 Store 和 Load 之间没有MFENCE 英特尔 64 和 IA 32 架构 8 2 3 4 可以将早期存储的负载重新排序到不同位置 还已知 在这样的示例中
  • 如何在导航周围创建径向渐变?

    看到围绕导航中心流动的径向渐变了吗 假设我做了一个div那就是导航 我将如何创建如图所示的渐变 注 看背景behind菜单 如果你谈论导航后面的浅棕色光芒 你可以使用 CSS3 来做到这一点 http jsfiddle net Jg8ZC
  • SignalR 自托管 Windows 服务,监听消息

    我正在尝试构建一个自托管 SignalR 的 Windows 服务 我已阅读过诸如此类的教程SignalR 在 ASP Net 上自托管 我注意到 至少看起来 它们是基于广播消息的 并且似乎找不到任何与聆听相关的内容 我需要收听服务内部的消
  • 为字符串创建距离矩阵

    我想加快以下代码的速度 有人能好心地提出一些建议吗 library dplyr library fuzzywuzzyR set seed 42 rm list ls options scipen 999 init FuzzMatcher n
  • Spring Boot 中的 Hystrix 仪表板问题

    我是 Hystrix 仪表板的新手 我已经用 Hystrix 编写了示例应用程序 我想查看 Hystrix 图表 命令指标流 但我收到以下错误 Circuit Unable to connect to Command Metric Stre
  • PDF 中的 JavaScript?

    我制作了一个可编辑的 PDF 供学生索取成绩单 现在 我想限制输入 例如 我只想要他们的 ID 号为数字 并且我只想要姓名字段中的字母 无特殊字符 等 此外 还有一个名为 最后就读年份 的输入 其中输入用户的最后一个学年上大学了 如果输入的
  • 从元素最小值的元组列表中提取元组的优雅方法

    我有一个元组列表 我希望从中得到索引处最小值的元组1 例如 如果我的列表如下 a a 2 ee 3 mm 4 x 1 我希望返回的元组是 x 1 目前我正在使用sorted函数得到这样的结果 min sorted a key lambda
  • 查找图中的连通分量[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 如果我有一个无向图 作为顶点列表实现 如何找到它的连通分量 如何使用快速联盟 使用深度优先搜索 DFS 将所有单独的连接组件标记为已访问 dfs node u for each
  • 删除字符串中连续重复的单词

    我正在尝试编写一个函数来删除字符串中连续的重复单词 保留正则表达式找到的任何匹配项至关重要 换句话说 一只非常非常非常肮脏的狗 应该成为 一只非常脏的狗 我有一个似乎运行良好的正则表达式 基于这篇文章 b S b s 1 但是我不确定如何使
  • 如何从javascript中的值获取对象值的路径

    Example var someObject part1 name Part 1 txt example part2 name Part 2 size 15 qty 60 part3 name Part 3A size 10 qty 20