JavaScript 从嵌套对象获取值[重复]

2023-12-10

如果这是我的目标:

var obj = {
bakery1: {
    small: {
        name: "Small cookie",
        price: 0.75;
    }
    large: {
        name: "Large cookie",
        price: 3.00;
    }
}
bakery2: {
    small: {
        name: "Small cookie",
        price: 1.00;
    }
    large: {
        name: "Large cookie",
        price: 4.00;
    }
}
};

我将如何制作一个将每个价格打印到控制台的循环?

当这个值被打印出来时,有没有办法追踪这个名字?

例如,如果输出是 3.00,我该如何创建一个函数来给出与 3.00 价格相符的名称?

提前致谢!


回答你的问题:

function printPrice(obj) {
  if (obj.price)
    console.log(obj.name, obj.price)

  else for (key in obj)
    printPrice(obj[key])
}

var obj = {
  "bakery1": {
    "small": {
      "name": "Small cookie",
      "price": 0.75
    },
    "large": {
      "name": "Large cookie",
      "price": 3
    }
  },
  "bakery2": {
    "small": {
      "name": "Small cookie",
      "price": 1
    },
    "large": {
      "name": "Large cookie",
      "price": 4
    }
  }
};

printPrice(obj)

但是,对于这些类型的集合,最好使用数组。例如,我们可以这样做:

var bakeries = [
  {
    name: 'Bakery 1',
    menu: [
      {name: 'small cookie', price: 0.75},
      {name: 'large cookie', price: 3.00}
    ]
  },

  {
    name: 'Bakery 2',
    menu: [
      {name: 'small cookie', price: 1.00},
      {name: 'large cookie', price: 4.00}
    ]
  }
]

这使我们能够更好地组织每个项目的具体属性。在这种情况下,打印价格的代码变得简单得多:

bakeries
  .map(bakery => bakery.menu)
  .forEach(menu => menu.map(
    item => console.log(item.name, item.price)))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 从嵌套对象获取值[重复] 的相关文章

  • 检查用户是否连接到 Facebook,然后检查他是否喜欢某个页面

    有没有什么方法可以检查用户是否在我的外部页面上连接到 Facebook 而不让他们允许我的应用程序之一 同样的问题也适用于 检查用户是否喜欢某个页面 我检查了大约 20 个问题和 3 4 个教程 似乎所有问题都在讨论内部脚本 粉丝页面 应用
  • JavaScript 对象引用缓存

    我们的代码库中有很多对象 它们的名称空间是为了避免冲突 Example App local view MyView 在我在代码库中看到的大多数地方 我们使用完整路径来获取对对象的引用 并且这在同一函数中重复多次 Example functi
  • 将 Javascript 变量转换为 PHP 变量

    我想使用由 videoel getCurrentTime 函数返回给我的 javascript 变量 并将其转换为 php 变量 以便我能够将其添加到我的 SQL 插入查询中 例如 INSERT INTO tblData VALUES ph
  • 如何使用 LinkedIn javascript sdk 检索包括所有字段的职位列表?

    我想要获取 LinkedIn 会员在其个人资料中输入的每个职位的 ID 头衔 摘要 开始日期 结束日期 当前状态和公司名称 我测试了一个查询休息控制台 https apigee com console linkedin我得到了想要的结果 查
  • 通知用户消息仍在输入中

    我正在使用 Laravel 5 6 7 Socket IO 和 vue js 我没有使用 Pusher 和 redis 下面是我的代码 用于向与我一对一聊天的用户发送消息 var url http localhost 6001 apps M
  • 在 asp.net vb 中通过第一个下拉列表值填充第二个下拉列表

    我在使用 asp net vb 时遇到了一些问题 我想做的是有2个下拉框 第一个下拉菜单将有 1 2 3 例如 第二个下拉菜单将有 A 乙 C 默认情况下 但是 如果选择 1 我希望第二个下拉菜单自动选择 c 我不知道 JavaScript
  • 如何在 Node.js 中让一个 EventEmitter 监听另一个 EventEmitter?

    我想做这样的事情 var events require events var emitterA new events EventEmitter var emitterB new events EventEmitter emitterA ad
  • JavaScript 变量赋值与 OR 对比 if 检查[重复]

    这个问题在这里已经有答案了 在 JavaScript 中 我最近意识到你可以使用 OR 赋值的逻辑运算符 我想知道这是否被认为是不好的做法 特别是 我有一些具有可选数组输入的函数 如果输入是null or undefined我应该将它设置为
  • Chrome SuppressDifferentOriginSubframeJSDialogs 使用 JS 设置覆盖?

    Chrome 开发团队显然刚刚推出了一项名为 SuppressDifferentOriginSubframeJSDialogs 的新 功能 这使得默认情况下不会显示来自与父级不同域上的 iFrame 的警报 确认框 https www ch
  • jQuery Blur() 在 Chrome 上不起作用

    我在 MacOSX 上运行这个http jsfiddle net q84wv http jsfiddle net q84wv on Chrome最新版本 它不会工作 在 Firefox 上运行时它工作得很好 有什么线索吗 假设您想要aler
  • 使用 Javascript / Jquery 的本地存储(不使用 HTML5)

    我想在 javascript 或 jquery 中复制本地存储概念 类似于 HTML5 但不幸的是我不知道如何开始 任何人都可以建议如何使用 javascript 或 jquery 实现本地存储 不使用 HTML5 这是一个有点愚蠢的差事
  • 在 vue.js 模板中包含外部脚本

    我是 Vue js 和 web pack 的新手 所以我决定使用 vue cli webpack 来构建初始应用程序 我试图包含一个外部脚本 例如组件 不需要的模板中 但是 Vue 警告这是不允许的 我的 index html 文件与最初生
  • Window 与 Var 声明变量[重复]

    这个问题在这里已经有答案了 可能的重复 JavaScript 中使用 var 和不使用 var 的区别 https stackoverflow com questions 1470488 difference between using v
  • 元素中优先考虑 ngclick 而非 nghref

    tl dr 如何强制 Angular 只执行 ngclick 指令 a 元素而不清空 删除href 我的网站在某些元素上有一些自定义行为 模式打开 位置栏更新等 但对于 SEO 索引我also需要它成为一个 a 元素与href包含有效链接的
  • 如何在 angularjs 中修剪()字符串?

    有角度特定的方法吗 如果没有 我应该使用内置的jquery 来做到这一点吗 如果我应该使用内置的jquery 如何在不使用 的情况下访问trim 函数 或者这是必要的 编辑 是的 我知道 str trim 对不起 我需要这个才能在 IE 8
  • Postman - 如何计算 JSON 响应中特定对象的出现次数

    我是 JSON 和 Postman 的新手 我相信我正在尝试做一些非常简单的事情 我创建了一个 GET 请求 它将获得如下所示的 JSON 响应 在下面的例子中我想得到count响应中所有 IsArchived 属性 这些属性的数量因响应而
  • Meteor.js 登录事件

    因此 我对 Meteor 框架和 JavaScript 总体来说还很陌生 但我正在使用该框架开发一个小项目 以尝试让自己达到标准 基本上我正在开发一个微博客网站 目前 用户可以通过多种服务登录 fb google 等 我通过插入所需 url
  • 如何在粘贴时获取文本区域输入字段的新值?

    我发现当我尝试从文本区域字段读取值时onpaste调用函数时 我得到字段的旧值 粘贴操作之前的值 而不是新值 粘贴操作之后的值 以下是此行为的演示 http jsfiddle net qsDnr http jsfiddle net qsDn
  • ThreeJS无法加载Json文件

    首先 我已经读过这个问题 https stackoverflow com questions 17201888 three js exporter export object not working with jsonloader r58没
  • 获取淘汰赛中被点击元素的索引

    获取无序列表中单击元素的索引的最佳方法是什么 让我举个例子 假设我有以下 HTML 代码 ul li p p li ul 现在我有以下 javascript 代码来获取索引 self itemClicked function data it

随机推荐

  • Blazor WebAssembly 发布失败

    我正在尝试发布一个针对 NET 5 0 的 Blazor WebAssembly 应用程序 我使用默认设置从 Visual Studio 2019 创建了一个新的 Web 部署发布配置文件 该网站已发布到 IIS 但浏览器显示 500 19
  • Angular:点击浏览器后退按钮将用户带回家[重复]

    这个问题在这里已经有答案了 如果用户位于我的角度平台中 当用户单击浏览器的后退按钮时 我想将用户带到主页 还有一个边缘情况需要处理 如果用户通过谷歌搜索 Facebook 或直接输入链接来到我们的平台 那么我们不能执行此行为 但如果他已经在
  • Jenkins 和 NodeJS 插件 - 权限被拒绝错误

    我已经成功地在 Raspberry Pi 上设置了一个 Jenkins 实例 并且在最终遇到这个绊脚石之前已经安装了 NodeJS 插件 Started by an SCM change Building in workspace var
  • Protobuf-net 序列化枚举值超出范围

    C 允许将任何整数值分配给 enum 当我尝试使用值超出范围的枚举字段序列化 通过 protobuf net 对象时 它会抛出异常 没有线值映射到枚举 PersonLevel 我的枚举 PersonLevel 没有 Flags 属性 Pro
  • glBufferData分配的内存什么时候释放?

    假设我为统一缓冲区分配内存 如下所示 GLuint length 0x1000 GLuint myBuffer glGenBuffers 1 myBuffer glBindBuffer GL UNIFORM BUFFER myBuffer
  • 抛出奇怪的 org. Threeten.bp.DateTimeException ?

    我的代码运行得很好 今天突然我开始遇到这个异常 org threeten bp DateTimeException Field DayOfMonth cannot be printed as the value 1872095944 max
  • PHP 转换特殊字符,如 ş 到 s、ţ 到 t、ă 到 a

    我不知道如何命名我需要的内容 我想在 PHP 中将字符转换为更 正常 的字符集 例如 to become s to become t to become a 我有罗马尼亚城镇名称 我想在 URL 中使用更多 正常 字符 我想我想将罗马尼亚字
  • 退出时删除共享内存

    我有两个脚本 一个用于创建和写入共享内存块 第二个用于读取该共享内存 问题是 当第一个脚本结束时 即使我不取消链接 共享内存也会被删除 这是我的第一个脚本 import argparse import csv import os impor
  • 模板中的读取路径[重复]

    这个问题在这里已经有答案了 有没有办法读取当前页面的路径 例如 我在 www example com foo bar 我想阅读 foo bar 我必须在模板文件中执行此操作而不修改视图 并且我有太多视图文件而无法编辑每个视图文件 Cheer
  • 在可序列化对象上获取 NotSerializedException

    基本上 我编写了一个程序 将形状绘制到屏幕上 并将每个形状保存到 ArrayList 中 我想要做的是弄清楚如何将 ArrayList 保存到文件中 以便我可以稍后调用它并编辑已经存在的形状 因此 当我已经将对象 Shape 可序列化时 我
  • 在 HTML 页面上并排显示两个图像

    我试图并排放置两个相同大小的图像 如果我使用一个table然后我就可以并排显示两个图像 但在我的 CSS 样式表中 我对表格使用了自定义格式 这也显示在包含图像的页面上 我想只显示两个图像 没有任何自定义背景 边框等 我尝试使用div sp
  • 字符串前面的 b 有何作用?

    binary b Binary string 创建一个字符串会产生什么后果binary 我在文档中找不到任何关于此的提示 刚刚在浏览 language scanner 时发现了这个小小的好奇心 这是永远不会发布的 PHP 版本 6 的前向兼
  • 是否有另一种方法在工作人员中加载额外的包(并行计算)?

    R 中并行化的一种方法是通过snowfall包裹 要将自定义函数发送给工作人员 您可以使用sfExport 参见乔里斯的帖子here 我有一个自定义函数 它依赖于非基本包中未自动加载的函数 因此 当我并行运行我的函数时 R 会崩溃 因为某些
  • 使用 iText 提取文本不起作用:编码或加密文本?

    我有一个 pdf 文件 其安全属性如下 打印 允许 文件组装 不允许 内容复制 允许 可访问性内容副本 允许 页面提取 不允许 我尝试获取带有示例代码的文本作为文档示例 如下所示 pdftext Text null StringBuilde
  • Rails 3 public_activity,销毁记录

    我正在使用公共活动如果用户创建帖子 则进行 gem 跟踪 有没有办法在删除帖子时销毁公共活动记录 以便在活动源中不会显示类似以下内容的内容 A post was deleted 而只是删除活动表中的特定活动 Thanks 我认为这就是OP正
  • 通过 CURL POST JSON 数据并抓取它

    我正在尝试传递 json 数据作为 cURL POST 的参数 然而 我坚持抓住它并将其保存在数据库上 卷曲文件 data array name gt Hagrid age gt 36 data string json encode dat
  • 在面板上绘制 Html 表格?

    如何生成常规的 html table 在 Sencha Touch 2 的面板上 每行的数据可能来自商店 它不像列表那样非常 移动 但我想在我的平板电脑应用程序上有一些详细面板 其中包含如下几个部分 header 1 table tr td
  • Codeigniter多个文件上传路径

    我正在构建一个应用程序 需要获取上传的文件并将它们放在单独的缩略图和全尺寸图像目录中 但是 config upload path uploads 只允许我选择一个上传路径 如何定义两个或多个上传路径 实际上您需要做的就是 重新初始化 上传类
  • 为什么 Laravel 或 Beanstalkd 会跳槽?

    我正在管理音频转换Laravel 队列 and 豆茎 监测者监督者 当用户上传音频文件时 它会转到AudioController php这会触发一个Queue push AudioProcess 它本身会触发exec sh some scr
  • JavaScript 从嵌套对象获取值[重复]

    这个问题在这里已经有答案了 如果这是我的目标 var obj bakery1 small name Small cookie price 0 75 large name Large cookie price 3 00 bakery2 sma