2013-10-01 3 views
0

나는 클라이언트라는 객체를 만들려고합니다. 그것을 배열에 넣으십시오. 그리고 나서 첫 번째 클라이언트의 이름을 읽으십시오.JS : 배열에 객체

Exemple :

client1 {nom : "marco", prenom : "chedel", adresseMail : "[email protected]"}; 

와 울부 짖는 소리와 같은 배열로 클라이언트를 넣어.

listClients[client1] 

내가 무슨 짓을했는지 : 당신은 작동하지 않습니다 다음 혼합물을하고

obj.prop 
obj['prop'] 

:

var listClients = []; 
var client1 = {nom : "chedel",prenom:"Marco",adresseMail:"[email protected]"}; 
listClients.push(client1); 
var client2 = {nom : "De Almeida",prenom:"Jorge",adresseMail:"[email protected]"}; 
listClients.push(client2); 


function afficheClients(tableau){ 
    for (i=0;i<tableau.length;i++) 
    { 
     var c = tableau[i]; 
     document.write(c[adresseMail]); 
    // This ^^ doesn't work, it says :adresseMail isn't definied in c 
    } 
} 

afficheClients(listClients); 
+1

먼저 :'document.write'를 사용하지 마십시오. 두 번째 : 구문 오류가 있습니다. 'c [addresseMail]'대신'c.addresseMail'을 시도하십시오. –

+1

문제는'adresseMail'에 문자열 구분자가 없다는 것입니다. 'c [ "adresseMail"]'을 사용할 수 있습니다. jQuery를 사용하여 각 메일 주소 http://jsfiddle.net/kvPWr/의 목록 항목을 만드는 바이올린. (예를 들어 점 표기법을 사용하는 경우) console.log를 사용하여 document.write 대신 디버깅 할 물건과 Chrome DevTools를 사용하는 것이 좋습니다. 이렇게하면 다음과 같은 문제를 해결하는 데 도움이되는 많은 정보를 얻을 수 있습니다.) –

+0

@NickHusher, 내 교수님이 그런 방식으로 document.write를 사용하고 있습니다. 대신에 무엇을 사용할 수 있습니까? 고마워 ! – e1che

답변

3

당신은 문자열로 변수로 adressMail을 치료하고하지 않을 :

사용

document.write(c["adresseMail"]); 
+0

+1 adresseMail == 'adresseMail'' : D – leaf

2

객체의 속성에 액세스하는 방법은 두 가지가 있습니다 : obj[prop].

코드를 c.adresseMail 또는 c['adresseMail']으로 수정하면 올바르게 작동합니다.

2

을 문자열 사용하여 참조 다음 중 하나를

document.write(c['adresseMail']); 

또는 점 표기법을 사용하여 :

document.write(c.adresseMail); 

그리고 예 - document.write은 피해야합니다.