JavaScript 데이터 구조 - 사전

자전.
JavaScript 의 Object 류 는 사전 형식 으로 설계 되 었 습 니 다.
Dictionay 류 의 기 초 는 Array 류 이지 Object 류 가 아니다.
Array 배열 도 다음 과 같은 문자열 로 색인 을 정의 할 수 있 습 니 다.
var array = [1,2,3];
array["abc"] = "abc";
console.log(array["abc"]);// abc

배열 삭제 방법:
delete array[1];  //  [1, undefined, 3]   "abc"   

색인 이 아직 있 습 니 다. 값 은 undefined 입 니 다.
그럼 'abc' 를 삭제 할 까요?
delete array["abc"];  //  [1, undefined, 3]

결 과 는 색인 과 값 을 직접 삭제 하고 함께 삭 제 했 습 니 다.
배열 에 값 을 추가 하면?
array[3] =4;
array[4] = 5;
array.push(6);
console.log(array["abc"]);//[1, 2, 3, 4, 5, 6]

array [abc] 를 통 해 배열 에 데 이 터 를 삽입 하면 배열 의 색인 배열 순서 에 영향 을 주지 않 습 니 다.
length 속성
console.log(array.length); // 6

왜 배열 이 야? 7 개가 아니 라 6 개 야?
원인: 키 의 형식 이 문자열 일 때 length 속성 이 사용 되 지 않 기 때 문 입 니 다.
사전 정의 방법:
add()  //   
dataStore = new Array(); //            
find(); //   
remoe(); //   
showAll();//   
count();  //     
clear();   //     

전체 사전 코드:
function Dictionary() {
        this.add = add;
        this.datastore = new Array();
        this.find = find;
        this.remove = remove;
        this.showAll = showAll;
        this.count = count;
        this.clear = clear;
      }
      function add(key, value) {
        this.datastore[key] = value;
      }
      function find(key) {
        return this.datastore[key];
      }
      function remove(key) {
        delete this.datastore[key];
      }
      function showAll() {
        for each(var key in Object.keys(this.datastore)) {
          print(key + " -> " + this.datastore[key]);
        }
      }
      function count() {
        var n = 0;
        for each(var key in Object.keys(this.datastore)) {++n;
        }
        return n;
      }
      function clear() {
        for each(var key in Object.keys(this.datastore)) {
          delete this.datastore[key];
        }
      }

좋은 웹페이지 즐겨찾기