Создание функции, которая передает аргументы

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

(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 для JavaScripts для отображения ВСЕХ данных объекта (по одному ученику за раз) в поле HTML для сайта.

Ниже мой HTML:

<title>Student Info</title>
 
 

 





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

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

 <div id="info_box">
 <div id="info_btn">
 <h4 id="round">Click To See Next Student</h4>
 <a href="#" target="_blank">Next</a>
 </div>
 </div>
 </div> 
 
 </div>
</div>
1 ответ

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

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]);

licensed under cc by-sa 3.0 with attribution.