2017-05-24 1 views
0

임의의 객체를 가져 와서 여러 객체의 배열에서 임의의 키/값 쌍을 가져 오는 방법은 무엇입니까?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

도움이 되니 기쁩니다! –

관련 문제