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

时间:2017-05-24 00:41:07

标签: javascript arrays p5.js

如何从多个对象.json文件的数组中获取随机对象并获取随机键/值对?

我有一个p5.js脚本,它加载一个json文件,该文件包含多个对象的数组,每个对象具有11个键/值对。我可以获得随机对象,但我还需要获得随机键/ valeu对作为字符串。

我没有足够的代码技能来找出在随机对象和随机密钥/ valeu对之间随机排序的方法。有什么想法吗?

提前致谢。

示例json:

{
  "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代码:

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() {

}

1 个答案:

答案 0 :(得分:0)

我相信您说要从entries变量中随机输入。如果是这种情况,您需要做的就是执行以下操作:

var randomEntries = Object.keys(entries)[Math.floor(Math.random() * entries.length)];

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

希望这就是你要找的东西,因为措辞的原因,我不能确定。