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

从json对象javascript(p5.js)获取随机键/值对,javascript,arrays,p5.js,Javascript,Arrays,P5.js,如何从多个objects.json文件数组中获取随机对象和随机键/值对 我有一个p5.js脚本,它加载一个json文件,该文件包含一个多对象数组,每个对象有11个键/值对。我可以获得随机对象,但我还需要获得随机键/valeu对以用作字符串 我没有足够的代码技能来找出一种在随机对象和随机键/valeu对之间进行随机排序的方法。有什么想法吗 提前谢谢 示例json: { "entries": [ { "area": "0", "qtd": "3", "

如何从多个objects.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"
    }
]
}
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() {

}
p5.js代码:

{
  "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"
    }
]
}
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() {

}

我相信您是说希望从
entries
变量中获得一个随机条目。如果是这种情况,您只需执行以下操作:

var randomEntries = Object.keys(entries)[Math.floor(Math.random() * entries.length)];
Object.keys()
函数将返回一个键数组,您可以像其他数组一样引用该数组。然后可以使用随机生成的键来获取所需的值。如果要获取随机值,请使用
Object.values()


希望这就是您所寻找的,因为措辞的原因,我不太确定。

我相信您是说希望从
条目
变量中获得一个随机条目。如果是这种情况,您只需执行以下操作:

var randomEntries = Object.keys(entries)[Math.floor(Math.random() * entries.length)];
Object.keys()
函数将返回一个键数组,您可以像其他数组一样引用该数组。然后可以使用随机生成的键来获取所需的值。如果要获取随机值,请使用
Object.values()


希望这就是您想要的,因为措辞的原因,我不是很确定。

谢谢您的快速回复!我想这解决了我的问题。很高兴它有帮助!谢谢你的快速回复!我想这解决了我的问题。很高兴它有帮助!