2017-05-24 19 views
0

ランダムオブジェクトを取得し、複数のオブジェクト.jsonファイルの配列からランダムなキー/値ペアを取得するにはどうすればよいですか?jsonオブジェクトからランダムなキー/値ペアを取得するjavascript(p5.js)

それぞれ11個のキーと値のペアを持つ複数のオブジェクトの配列を含むjsonファイルを読み込むp5.jsスクリプトがあります。私はランダムなオブジェクトを取得できますが、文字列として使用するためにランダムなキー/バリューペアを取得する必要もあります。

ランダムオブジェクトとランダムキー/バリューペアの間でランダムにソートする方法を理解するのに十分なコードスキルはありません。これについての考えは?

ありがとうございます。

サンプル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() { 

} 

答えて

0

私はあなたがあなたのentries変数からランダムなエントリを取得したいと言っていると信じています。その場合はあなたがする必要があるのは、次の操作を行います:

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

Object.keys()機能を使用すると、任意の他の配列のように参照することができるキーの配列を返します。ランダムに生成されたキーを使用して、必要な値を取得できます。ランダムな値を取得する場合は、Object.values()を使用します。

うまくいけば、それはあなたが探していたものです、私は文言のために非常に確かではありませんでした。

+0

あなたの迅速な対応に感謝します!私はこれが私の問題を解決したと思う。 –

+0

うれしかった! –

関連する問題