从 JSON 中选择随机对象[重复]

2024-01-02

我有以下代码:

$.getJSON('js/questions1.json').done(function(data){
        window.questionnaire = data;
        console.log(window.questionnaire);
        startGame();
    });

这会从服务器获取 json 并将其记录到变量中。现在,在此之后,我想选择位于 questions.json 文档中的随机问题:

function pickRandomQuestion(){
        window.selectedquestion = window.questionnaire[Math.floor(Math.random * window.questionnaire.length)];
        console.log(window.selectedquestion);
        console.log(window.questionnaire);
    }

然而,当console.log()selectedquestion 变量,没有任何返回,它是未定义的。我的代码有问题吗?我已经检查了三次,没有发现任何不好的地方,但这可能只是我的头脑在跟我玩游戏。

json 的外观如下:

"q1" : {
        "question" : "This country is one of the largest wine-producing countries of the world, where wine is grown in every region of the country. Which country is this?",
        "a"        : "France",
        "b"        : "Italy",
        "c"        : "Germany",
        "d"        : "Australia",
        "corrrect" : "b"
    },
    "q2" : {
        "question" : "What is the name for the type of art portrait that deliberately exaggerates a person?",
        "a"        : "Environmental",
        "b"        : "Cartooning",
        "c"        : "Caricature",
        "d"        : "Tribal",
        "corrrect" : "c"
    },
    "q3" : {
        "question" : "Who was the first president of the United States?",
        "a"        : "Abraham Lincoln",
        "b"        : "Ronald Reagan",
        "c"        : "George Washington",
        "d"        : "Barack Obama",
        "corrrect" : "c"
    }...

那是因为math.random是函数而不是属性。

将其更改为:Math.random()

并且因为window.questionnaire是一个对象,您无法使用索引访问它,即(0,1,2)

你可以这样做:

function pickRandomQuestion(){
        var obj_keys = Object.keys(window.questionnaire);
        var ran_key = obj_keys[Math.floor(Math.random() *obj_keys.length)];
        window.selectedquestion = window.questionnaire[ran_key];
        console.log(window.selectedquestion);
        console.log(window.questionnaire);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 JSON 中选择随机对象[重复] 的相关文章

随机推荐

  • 在 IIS 6 上的 WCF REST Api 上启用 PUT(无 .svc 文件)

    在 IIS 6 上 如何允许 WCF Rest API 上的 PUT 操作 由于我没有 svc 文件 我在 global asax 上向服务类添加了一条路由 因此我无法允许在 IIS 6 上对 svc 扩展名进行 put 操作 打开IIS管
  • 如何找到标签等于字符串变量的树视图节点?

    首先 我想感谢所有花时间查看此帖子并尝试提供帮助的人 我在互联网上搜索过 但找不到选择标签文本与字符串变量的文本相同的树视图节点的示例 在 MSDN 上我找到了消息 TVM GETISEARCHSTRING 但我不知道它是否可以用来解决我的
  • Matlab:使用矩阵运算代替for循环

    在 Matlab 中是否可以仅使用矩阵运算来创建 NxN 矩阵 Mat 就像下面的两个 foor 循环所做的那样 Mat zeros N for row 1 N for col 1 N if row 1 1 lt col col lt N
  • SIFT和SURF特征提取使用MATLAB实现

    我正在使用matlab做一个古钱币识别系统 到目前为止我所做的是 转换为灰度 使用高斯滤波器去除噪声 对比度增强 使用 canny 边缘检测器进行边缘检测 现在我想提取特征进行分类 我想选择的特征是圆度 面积 颜色 SIFT 和 SURF
  • Rails attr_accessible 不适用于 :type?

    我尝试在表单中设置单表继承模型类型 所以我有一个属性选择菜单 类型 值是 STI 子类的名称 问题是错误日志不断打印 警告 无法批量分配这些受保护的属性 类型 所以我将 attr accessible type 添加到模型中 class C
  • JVM_FindSignal函数不断分配本机内存

    我部署在 Linux 机器上的 tomcat8 中的 java Web 应用程序一直在泄漏本机内存 我尝试使用 jemalloc 分析来检测泄漏源 如下所述 https github com jeffgriffith native jvm
  • 锁屏下追踪加速度计

    是否可以在锁定屏幕下跟踪加速度计值 我设法编写了一个简单的应用程序 它使用计时器从 1 计数到 100 该计时器触发一个事件 在该事件上我递增计数器 但是 当我为加速度计的 ReadingChanged 事件注册一个处理程序时 一旦屏幕锁定
  • 在 ASP.NET MVC DisplayFor Html Helper 中显示空值“NULL”

    有没有办法获得 Html DisplayFor如果模型项的值为 则在视图中显示 NULL 的值null 以下是我当前正在处理的 详细信息 视图中的某个项目的示例 现在 如果 描述 的值为 不显示任何内容 null div class dis
  • ehcache 持久化到磁盘问题

    我想用 Java 中的 ehcache 做一些我认为应该非常简单的事情 但我已经花了足够的时间让自己对文档感到沮丧 将值写入磁盘持久缓存 关闭 再次启动并读取该值 这是我的 Java 函数 private static void testC
  • Webpack + Express + EJS:错误:找不到模块“。”

    我正在使用 webpack typescript 和 ejs 编写一个 Express Web 应用程序 当点击应该提供 ejs 文件的路由之一时 我收到以下错误 Error Cannot find module at webpackMis
  • ActiveSync 客户端 Java 实现

    我的公司正在开发一个桌面和移动电子邮件客户端项目 该客户端可以通过用户或服务器管理员的最少配置连接到不同的邮件服务器 由于我们想要支持 Microsoft Exchange 因此我们似乎必须在 Java 中实现 ActiveSync 协议
  • 使用电话号码格式 NaN 屏蔽 EditText,就像 PhoneNumberUtils 中一样

    我想让用户在 editText 中输入电话号码 以便每次用户输入号码时动态更改格式 也就是说 当用户输入最多 4 位数字 例如 7144 时 editText 显示 714 4 我希望每当用户输入数字时 editText 就会动态更新为格式
  • HashLocationStrategy 在路由时不生成 # 个位置?

    我正在运行 Angular 2 beta 0 并且正在搞乱路由 这是我所拥有的 应用程序组件 import Component provide from angular2 core import bootstrap from angular
  • 使用 Vue-router 进行 Firebase 身份验证检查

    问题是 vue router 的 beforeEnter 比 main js 中的 beforeCreate 钩子更早触发 并且有第二个延迟 而在重新加载 vuex 操作后将用户设置为状态 这会导致用户被弹回登录页面 如何延迟 vue ro
  • fork后的变量

    这是一个代码 int i 0 pid t pid puts Hello World puts pid fork if pid i 42 printf p n i printf d n i puts 并输出 Hello World 0x7ff
  • 应用程序关闭时如何处理推送负载?

    我正在向我的用户发送包含以下内容的推送负载 aps alert Go To Google sound Default url http www google com 当应用程序在后台运行时 一切顺利 如果我收到推送并且应用程序已关闭 我打开
  • 使用 imread 函数读取 opencv 中的 jpg 文件时是否有任何可能的原因?

    最近在python中使用opencv 正如我注意到的 当我想导入时cv2python中的模块 我需要添加cv2 so使用以下命令手动将文件路径设置为系统路径 sys path append path to cv so 但是 当我想在 ipy
  • 如何正确设置 django-debug-toolbar 的内部 IP

    我第一次编辑setting py文件输入google cloud computing请原谅我这个愚蠢的问题 我想跑django debug toolbar并遵循该教程中的每一步 我想要的是工具栏在 our office only 所以我只是
  • 如何在 Perl 中轻松解析

    我想将网站解析为 Perl 数据结构 首先我加载页面 use LWP Simple my html get http f oo 现在我知道了两种处理方法 首先是正则表达式 其次是模块 我开始阅读有关HTML 解析器 http p3rl or
  • 从 JSON 中选择随机对象[重复]

    这个问题在这里已经有答案了 我有以下代码 getJSON js questions1 json done function data window questionnaire data console log window question