2014-01-26 52 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事件,點擊後可以調用使用JavaScript的innerHTML屬性來顯示所有對象的數據(在一個學生的功能時間)在該網站的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

就拿編號關閉屬性的名稱,例如姓名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]); 
+0

我試過你的第一個代碼,這工作得很好,但在控制檯我想要的地址顯示在一行,而不是顯示那裏有一個對象 – user3237999

+0

這是因爲我所做的控制檯調用只是顯示學生對象,你將不得不像你在代碼中那樣構建輸出 –

+0

我明白了我的期望。我還編輯了原始帖子,告訴你它是什麼,我正在嘗試做的下一步,只要點擊按鈕 – user3237999

相關問題