2013-07-21 6 views
0

아래의 코드에서는 두 개의 JSON 객체가있는 배열을 만들었지 만 20 개의 객체가 필요한 경우 배열에 20 번 쓰거나 런타임 중에 20 개의 객체를 만드는 더 좋은 방법이 있습니까? 생성되는 동안 임의의 값이 있습니까?런타임 중에 개체를 만드시겠습니까?

자바 나 C# 같은 실제 OOP 언어에 비해 자바의 한계가 있다는 것을 알고 있습니다. 한 클래스에서 객체를 만들고 목록에 추가 할 수 있습니다. 먼저

var numbers = [ 
    { 
    "x": 100, 
    "y": 100, 
    "visible": true, 
    "value": 23 
    }, 
    { 
    "x": 150, 
    "y": 100, 
    "visible": true, 
    "value": 19 
    }, 
    ]; 
+0

첫째 : 자바 스크립트는 실제 OO 언어를 _is_ . 둘째 : JS에는 생성자 함수에서 객체를 만들 수있는 메커니즘이 있습니다. 셋째 : JSON이 없다. [JSON 객체와 같은 것은 없습니다.] (http://benalman.com/news/2010/03/theres-no-suchthing-as-a-json/). – nnnnnn

+0

@nnnnnn 나는 그 언어 풍차에서 기울기를 멈추기로 결정했다. 나는 "JSON 개체"사람들이 전투에서 승리했다고 생각한다. – Barmar

+0

다른 언어와 마찬가지로 루프로 개체를 만들 수 있습니다. 어떤 문제가 있는지는 명확하지 않습니다. – Barmar

답변

2

: 자바 스크립트 진짜 OO 언어입니다. 둘째 : JS에는 생성자 함수에서 객체를 만들 수있는 메커니즘이 있습니다. 또는 루프에서 객체 리터럴을 사용할 수도 있습니다. 셋째 : JSON이 없다. there's no such thing as a JSON object.

여기 당신이 무슨 말을하는지 한 가지 방법입니다했다 가졌 :

function getRandomInt(min, max) { 
    return Math.floor(Math.random() * (max - min + 1)) + min; 
} 

var numbers = []; 

for (var i=0; i < 20; i++) { 
    numbers.push({ 
     "x": getRandomInt(0, 200), 
     "y": getRandomInt(0, 200), 
     "visible": true, 
     "value": getRandomInt(0, 50) 
    }); 
} 

또는 사용에 constructor function :

function MyObject() { 
    this.x = getRandomInt(0, 200); 
    this.y = getRandomInt(0, 200); 
    this.visible = true; 
    this.value = getRandomInt(0, 50); 
} 

var numbers = []; 

for (var i=0; i < 20; i++) 
    numbers.push(new MyObject()); 
+0

코드 예제를 보내 주셔서 감사합니다. 루프 내에서 값을 가져 오는 함수를 호출 할 수 있습니까? –

+0

예. 두 숫자 사이의 임의의 정수를 생성하는 방법을 보여주기 위해 내 대답을 업데이트했습니다. – nnnnnn

+0

Nice! 도와 주셔서 감사합니다! –

0
var numbers = []; 

for(var i = 0; i < 20; ++i) { 
    numbers.push({ 
     x: Math.random(), 
     y: Math.random(), 
     visible: Math.round(Math.random() * 10)/10) % 2 == 0, 
     value: Math.random() 
    }); 
} 
관련 문제