2013-09-04 2 views
2

Я пытаюсь передать динамически созданный объект в массив в JavaScript. Объект проходит, но когда я пытаюсь восстановить данные внутри объекта, он исчез. Журналы консоли round [object, object]. как я могу это сделать?Передача объекта в массив в JavaScript

Вот мой код:

function roundList(myRounds){ 

var savedRounds = []; 
savedRounds.push(myRounds); 
console.log("this is savedRounds " + savedRounds); 
}; 

function round(course,tee,slope,rating,score){ 
this.course=course; 
this.tee=tee; 
this.slope=slope; 
this.rating=rating;   
this.score=score; 
} 

function makeRound(){ 
var newCourse = document.getElementById('course').value 
var newTee = document.getElementById('tee').value 
var newSlope = document.getElementById('slope').value 
var newRating = document.getElementById('rating').value 
var newScore = document.getElementById('score').value 
var newDate = document.getElementById('date').value 
var newRound = new round(newCourse,newTee,newSlope,newRating,newScore); 
    roundList(newRound); 
} 

ответ

2

Это не ясно, где вы пытаетесь получить доступ к объекту, но var в var savedRounds = []; означает savedRounds только локальную область и доступна только внутри roundList метода.

Если вы хотите получить доступ к сохраненнымRounds вне метода roundList, объявите savedRounds = []; за пределами метода roundList или верните его из метода, чтобы что-то еще могло получить к нему доступ.

+3

... и это означает, что когда возвращается «roundList», массив уходит. – Pointy

1

использование console.log(JSON.stringify(savedRounds)) вместо

Это покажет вам полное содержание объекта.

Как уже указывали другие, вы также не сохраняете объект прямо сейчас, и он не будет доступен после завершения функции.

+1

В Chrome вы также можете использовать 'console.log (« Lorem Ipsum », object)' и все равно получить хорошую расширяемую запись в журнале. Пока вы используете комы вместо того, чтобы переводить все в строку. – zatatatata

Смежные вопросы