2014-07-22 2 views
0

좋아, 나는 두 개의 명명 된 개체가 존재하는 전화 접촉 배열을 지정해, 함수 를 사용하여 배열로 이름이 객체를 생성 할 수있는 튜토리얼을 촬영 한 (멍청한 놈) 객체의 이름을 생성하기 위해 문자열을 전달 :는 자바 스크립트

function add(firstName, lastName, phoneNumber, email) { 

contacts[contacts.length] = { 
    firstName: firstName, 
    lastName: lastName, 
    phoneNumber: phoneNumber, 
    email: email 
    }; 
} 

add("Buddy", "King", "312-555-5555", "[email protected]"); 

이름없는 개체를 추가합니다. 그러나 새 객체에 이름을 지정하려면 어떻게해야합니까? 첫 번째 매개 변수를 사용하고 싶습니다.) "Buddy"를 개체 이름으로 사용하여 문자열을 ???로 변환하십시오.

+1

개체에 이름을 지정 하시겠습니까? 당신이 묻고있는 것이 조금 분명하지 않습니다. "명명 된"객체의 예를 게시 할 수 있습니까? – War10ck

+0

기존 항목을 변경 하시겠습니까? 이름으로 검색하여 항목을 찾으십시오. – Ian

+1

[javascript arrays] (http://www.w3schools.com/js/js_arrays.asp)에 대해 읽어보십시오. 장기적으로 도움이 될 것입니다. – Danny

답변

2

사용이 (연관 배열) :

contacts[firstName] = { 
    firstName: firstName, 
    lastName: lastName, 
    phoneNumber: phoneNumber, 
    email: email 
}; 

지금 당신이 contacts['Buddy']과 함께 "친구"항목을 얻을 수 있습니다. JS의 모든 배열은 연관 적이지만 번호가 매겨진 배열은별로 비슷하지 않습니다.

+0

너무 리터럴하지 않아야하지만 연관 배열과 같은 것은 없습니다. 배열이 있고 객체가 있습니다. 배열은 객체입니다. 객체에는 속성이 있습니다. 배열에 속성 (숫자가 아님)을 설정해야하는 이유는 거의 없습니다. 배열은 숫자 인덱스와 데이터의 내부 표현 ('length' 속성에 반영)을 조작하는 제공된 메서드 ('push','pop' 등)와 함께 사용하기위한 것입니다. 나는 당신의 솔루션이 이상적이라고 생각하지만,'contacts'는 배열 ('[]')이 아닌 객체 리터럴 ('{}')이어야합니다. – Ian

+0

@Ian : 이것을 지적 해 주셔서 감사합니다. 객체, 배열 동작을 가진 객체, 배열 동작이없는 명백한 배열 (예 :'arguments') 및 Crockford의 * 좋은 부분 *에서 찾을 수있는 추가 내장 함수에 대한 세부 정보는 들어가기 싫었습니다. 그리고 물론,'contacts = {};'. 차이점은 JS에는 연관성 (임의의 키에서 객체까지) 만 있고 실제 색인 (또는 C 및 C++과 같은 주소 오프셋)이 없다는 점입니다. 이러한 의미에서 모든 객체는 연관성을 사용하므로 배열도 마찬가지입니다. 하지만 그것은 이미 너무 오랫동안 주석을 달았습니다 :) – pid

+0

마침내 JS 언어에 익숙해졌습니다. 그래서 지금 당신이 의미하는 바를 알고 있습니다! – Paeon