Map

김_리트리버·2020년 10월 2일
0

Data Structure

목록 보기
3/3

Map

키-value 형태의 데이터를 저장한 순서대로 모아놓은 자료구조

function Map() {
  let items = {}

  // this 로 함수를 선언할 경우
  // 함수에 수정사항이 생겼을 때
  // Map 으로 만든 인스턴스 각각을 수정해주어야 한다.

  // prototype 으로 선언하면
  // 인스턴스를 만들 때마다 메서드를 새롭게 생성하지 않고
  // 원본 함수에 선언된 메서드를 참조하여 사용한다.
  // 때문에 낭비를 줄일 수 있다.
  Map.prototype.has = function (key) {
    return key in items
  }

  Map.prototype.set = function (key, value) {
    items[key] = value
  }

  Map.prototype.remove = function (key, value) {
    if (this.has(key)) {
      delete items[key]
      return true
    }

    return false
  }

  Map.prototype.get = function (key) {
    if (this.has(key)) {
      return items[key]
    } else {
      return undefined
    }
  }

  Map.prototype.values = function () {
    let values = []

    for (let key in items) {
      values.push(items[key])
    }

    return values
  }

  Map.prototype.clear = function () {
    items = {}
  }

  Map.prototype.size = function () {
    return Object.keys(items).length
  }

  Map.prototype.keys = function () {
    return Object.keys(items)
  }
}

profile
web-developer

0개의 댓글