2014-01-26 6 views
0

Что я пытаюсь сделать, так это выяснить, как создать вызов функции, передающий аргументы для объекта. В моем коде ниже я создал массив объектов. Я просто хочу выяснить, как создать вызов функции, который передает аргументы для нового объекта. Передаваемые аргументы будут теми же элементами данных в уже существующих объектах. Вот мой код:Создание функции, которая передает аргументы

(function(){ 
    console.log('******Objects of Student Information Below!******'); 
//Student Information in An Object 

var studentInfo=[{name1: 'SabrinaHill', address1:{address1:'172 Brushcreek Dr', city1:'Sanford',state1:'FL'},gpa1:[3.2,3.7,4.0]},{name2: 'JoelOsteen', address2:{address2:'3226 Lilac Dr', city2:'Portsmouth',state2:'VA'},gpa2:[3.0,2.7,2.0]},{name3: 'JoelOsteen', address3:{address3:'3226 Lilac Dr', city3:'Portsmouth',state3:'VA'},gpa3:[3.0,2.7,2.0]}]; 

console.log('Name:',studentInfo[0].name1); 
console.log('Address:',studentInfo[0].address1.address1,studentInfo[0].address1.city1,studentInfo[0].address1.state1); 
console.log('GPA:',studentInfo[0].gpa1[0]+',',studentInfo[0].gpa1[1]+',',studentInfo[0].gpa1[2]); 

console.log('Name:',studentInfo[1].name2); 
console.log('Address:',studentInfo[1].address2.address2,studentInfo[1].address2.city2,studentInfo[1].address2.state2); 
console.log('GPA:',studentInfo[1].gpa2[1]+',',studentInfo[1].gpa2[1]+',',studentInfo[1].gpa2[1]); 

console.log('******Added Information******'); 

var args = ('super man', '123 Test Dr', 'Orlando', 'Florida' [3.2, 4.0, 2.2]); 

console.log('Name:',studentInfo[0].name1); 
console.log('Address:',studentInfo[0].address1.address1,studentInfo[0].address1.city1,studentInfo[0].address1.state1); 
console.log('GPA:',studentInfo[0].gpa1[0]+',',studentInfo[0].gpa1[1]+',',studentInfo[0].gpa1[2]); 

console.log('Name:',studentInfo[1].name2); 
console.log('Address:',studentInfo[1].address2.address2,studentInfo[1].address2.city2,studentInfo[1].address2.state2); 
console.log('GPA:',studentInfo[1].gpa2[1]+',',studentInfo[1].gpa2[1]+',',studentInfo[1].gpa2[1]); 



})(); 

Я пытаюсь, чтобы консоль отображала новую информацию, добавленную с помощью функции. Любая помощь будет оценена по достоинству.

Благодаря


Я также ищу помощи о том, как создать событие OnClick на кнопке, при нажатии вызывает функцию, которая использует свойство innerHTML в JavaScript для отображения всех данных объекта (один студент в время) в поле HTML для сайта.

Ниже мой HTML:

<!doctype html> 

<html lang="en"> 
<head> 
    <meta charset="utf-8"> 

    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 

    <title>Student Info</title> 
    <meta name="description" content=""> 
    <meta name="author" content=""> 

    <link rel="stylesheet" href="css/style.css"> 

</head> 

<body> 

<div id="form_box"> 
    <div id="contact-form"> 
     <p class="heading">Display Students Information Below:</p> 
     <div id="form-box">      

       <div id="output"> 
        <div id="name"> 
         <p></p> 
        </div> 
        <div id="address"> 
         <p></p> 
        </div> 
        <div id="gpa"> 
         <p></p> 
        </div> 
        <div id="date"> 
         <p></p> 
        </div> 
        <div id="gpaavg"> 
         <p></p> 
        </div> 
        <div id="phone"> 
         <p></p> 
        </div> 
        <!-- <div class="clear"></div> --> 
       </div> 

       <div id="info_box"> 
        <div id="info_btn"> 
         <h4 id="round" class="heading">Click To See Next Student</h4> 
         <a href="#" class="buttonred">Next</a> 
        </div> 
       </div> 
     </div>   
     <div class="clear"></div> 
    </div> 
</div> 

<script type="text/javascript" src="js/main.js"></script> 

</body> 
</html> 
+0

Вы можете создать совершенно новый пост, а не изменить друг что-то другое. –

+0

@PatrickEvans да, сэр, я делаю это сейчас. – user3237999

+0

@PatrickEvans так жаль беспокоить вас, но они заблокировали меня от вопросов, которые я только что подписал сегодня, и я изучаю, как работает этот сайт. так или иначе, вы могли бы помочь мне за пределами этого места? facebook, ichat и т. д.? – user3237999

ответ

0

Возьмите нумерацию от имен свойств, например name1 просто следует назвать и т.д. Затем сделать функцию, как показано ниже:

function modifyStudent(studentObj,name,address,city,state,gpa){ 
    studentObj.name=name; 
    studentObj.address = { 
     address:address, 
     city:city, 
     state:state 
    }; 
    studentObj.gpa = gpa; 
} 

затем вызвать функцию со студенческим объектом и аргументами для адреса наименования и т. д.

var studentInfo = [{ 
    name:"Test", 
    address:{ 
    address:"No where", 
    city:"Chicago", 
    state:"IL", 
    }, 
    gpa:[] 
}]; 
modifyStudent(studentInfo[0],'super man', '123 Test Dr', 'Orlando', 'Florida', [3.2, 4.0, 2.2]); 
console.log(studentInfo[0]); 

Поскольку javascript передается по ссылке для объектов и массивов, когда функция модифицирует свойства объектов, эти изменения будут видны, когда объект studentInfo[0] будет использоваться после него.

Или вы могли бы сделать объект студент, который имеет метод изменять данные студентов

function student(){ 
    this.name=""; 
    this.address={address:"",city:"",state:""}; 
    this.gpa=[]; 

    this.modifyStudent(name,address,city,state,gpa){ 
     this.name=name; 
     this.address = { 
      address:address, 
      city:city, 
      state:state 
     }; 
     this.gpa = gpa; 
    }; 
} 

var studentInfo= [new student(),new student()]; 
console.log(studentInfo[0]); 
studentInfo[0].modifyStudent('super man', '123 Test Dr', 'Orlando', 'Florida', [3.2, 4.0, 2.2]); 
+0

Я попробовал вам первый код, и это работает нормально, но в консоли я хотел, чтобы адрес отображался на одной строке, а не показывал, что есть объект – user3237999

+0

, потому что вызов консоли, который я делаю, просто отображает объект-ученик, вы должны были бы построить вывод, как в своем коде. –

+0

Я получил его, чтобы показать, как я его ожидал. Я также отредактировал исходное сообщение, чтобы показать вам, что это такое. Я пытаюсь сделать следующее, поскольку нажатие кнопки – user3237999

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