从 json 个对象 javascript (p5.js) 中随机获取 key/value 对
get random key/value pairs from json objects javascript (p5.js)
如何获取随机对象并从包含多个对象的数组 .json 文件中获取随机 key/value 对?
我有一个 p5.js 脚本,它加载一个 json 文件,该文件包含多个对象的数组,每个对象有 11 个 key/value 对。我可以获得随机对象,但我还需要随机 key/valeu 对用作字符串。
我没有足够的代码技能来找出在随机对象和随机 key/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() {
}
我相信你是说你想从你的 entries
变量中获得一个随机条目。如果是这种情况,您需要做的就是执行以下操作:
var randomEntries = Object.keys(entries)[Math.floor(Math.random() * entries.length)];
Object.keys()
函数将 return 一个键数组,您可以像任何其他数组一样引用它。然后,您可以使用随机生成的密钥来获取所需的值。如果你想得到一个随机值,使用Object.values()
.
希望这就是您要找的,因为措辞原因我不是很确定。
如何获取随机对象并从包含多个对象的数组 .json 文件中获取随机 key/value 对?
我有一个 p5.js 脚本,它加载一个 json 文件,该文件包含多个对象的数组,每个对象有 11 个 key/value 对。我可以获得随机对象,但我还需要随机 key/valeu 对用作字符串。
我没有足够的代码技能来找出在随机对象和随机 key/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() {
}
我相信你是说你想从你的 entries
变量中获得一个随机条目。如果是这种情况,您需要做的就是执行以下操作:
var randomEntries = Object.keys(entries)[Math.floor(Math.random() * entries.length)];
Object.keys()
函数将 return 一个键数组,您可以像任何其他数组一样引用它。然后,您可以使用随机生成的密钥来获取所需的值。如果你想得到一个随机值,使用Object.values()
.
希望这就是您要找的,因为措辞原因我不是很确定。