首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从json对象javascript获取随机密钥/值对(p5.js)

从json对象javascript获取随机密钥/值对(p5.js)
EN

Stack Overflow用户
提问于 2017-05-24 00:41:07
回答 1查看 1.7K关注 0票数 1

如何从多个对象.json文件数组中获取随机对象和随机密钥/值对?

我有一个p5.js脚本,它加载一个json文件,其中包含一个包含11个键/值对的多个对象数组。我可以得到随机对象,但我也需要获得随机键/值对作为字符串使用。

我没有足够的代码技能,无法找到在随机对象和随机密钥/值对之间进行随机排序的方法。对此有什么想法吗?

提前谢谢。

示例json:

代码语言:javascript
复制
{
  "entries": [
    {
      "area": "0",
      "qtd": "3",
      "author": "FERNANDES, C. E. de M.",
      "title": "Fundamentos de física para geociências.",
      "subTitle": "xxxxx",
      "qtdPag": "v.",
      "edition": "xxxxx",
      "isbn": "ISBN 9788571931596.",
      "edPlace": "Rio de Janeiro:  Interciência,  2007.",
      "cdu": "53 F363f  Ac.1028543",
      "areaKnow": "Pre-catalogação"
    }
]
}

p5.js代码:

代码语言:javascript
复制
var data;
var fontRegular;

function preload() {

    fontRegular = loadFont("assets/RobotoMono-Medium.ttf");
    data = loadJSON("assets/data-bce-final.json");
}

function setup() {

    createCanvas(windowWidth, windowHeight);
    setText();
    setInterval(setText, 5000);
}

function setText() {

    var entries = data.entries;
    var randomEntries = entries[Math.floor(Math.random() * entries.length)]; // get random item

    background(255);
    noStroke();
    fill(80, 227, 194);
    fill(100);
    textSize(30);
    textFont(fontRegular);

    text(
        // random version
        randomEntries.author + "\n" +
        randomEntries.title + "\n" +
        randomEntries.subTitle + "\n" + "\n" +
        randomEntries.edPlace + "\n" +
        randomEntries.areaKnow + "\n" + "\n" +
        randomEntries.cdu, 50, 60, windowWidth - 150);
}

function draw() {

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-24 00:55:05

我相信你是说你想从你的entries变量中得到一个随机条目。如果是这样的话,您需要做的就是做以下工作:

代码语言:javascript
复制
var randomEntries = Object.keys(entries)[Math.floor(Math.random() * entries.length)];

Object.keys()函数将返回一个键数组,您可以像其他数组一样引用这些键。然后,您可以使用随机生成的键来获取所需的值。如果您想获得一个随机值,请使用Object.values()

希望这就是你要找的,我不是很确定,因为措辞。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44147148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档