如何从多个对象.json文件数组中获取随机对象和随机密钥/值对?
我有一个p5.js脚本,它加载一个json文件,其中包含一个包含11个键/值对的多个对象数组。我可以得到随机对象,但我也需要获得随机键/值对作为字符串使用。
我没有足够的代码技能,无法找到在随机对象和随机密钥/值对之间进行随机排序的方法。对此有什么想法吗?
提前谢谢。
示例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() {
}发布于 2017-05-24 00:55:05
我相信你是说你想从你的entries变量中得到一个随机条目。如果是这样的话,您需要做的就是做以下工作:
var randomEntries = Object.keys(entries)[Math.floor(Math.random() * entries.length)];Object.keys()函数将返回一个键数组,您可以像其他数组一样引用这些键。然后,您可以使用随机生成的键来获取所需的值。如果您想获得一个随机值,请使用Object.values()。
希望这就是你要找的,我不是很确定,因为措辞。
https://stackoverflow.com/questions/44147148
复制相似问题