非順序數據結構——字典

做用

經過鍵值(key-value)對來存儲不重複的值的,與集合相比,集合是經過值值(value-value)來存儲不重複的值數組

字典所需功能

  • 跟據傳入的key-value值向字典中添加元素
  • 經過key移除字典中對應的值
  • 經過某個鍵來判斷是否含有某個值
  • 經過給定的鍵查找到特定的值並返回
  • 將字典置爲空
  • 獲取字典的容量
  • 獲取字典所包含的全部鍵,並以數組的形式返回
  • 獲取字典所包含的全部值,並以數組的形式返回

代碼實現過程

/**
 - dictionary constructor
 */
function Dictionary(){
    let items = {};
    
    /**
     * 設置key和對應的值
     * @param {*鍵} key 
     * @param {*值} value 
     */
    this.set = function(key, value){
    }

    /**
     * 刪除key對應的value值
     * @param {*鍵} key  
     */
    this.remove = function(key){
        
    }

    /**
     * 判斷是否含有某個鍵
     * @param {*鍵} key  
     */
    this.has = function(key){

    }

    /**
     * 獲取指定鍵對應的值
     * @param {*鍵} key  
     */
    this.get = function(key){

    }

    /**
     * 清除字典 
     */
    this.clear = function(){

    }

    /**
     * 獲取字典的容量
     */
    this.size = function(){

    }

    /**
     * 獲取字典中全部的鍵名,以數組的形式返回
     */
    this.keys = function(){

    }

    /**
     * 獲取字典中全部的值,以數組的形式返回
     */
    this.values = function(){

    }
    
    /**
     * 獲得整個item
     */
    this.getItems = function(){

    }
}
  • this.set函數:爲字典添加元素
this.set = function(key, value){
         items[key] = value;
    }
  • this.has函數:判斷字典是否有某個指定的鍵
this.has = function(key){
       return key in items;
    }
  • this.remove函數:刪除字典中指定的鍵
this.remove = function(key){
        if(this.has(key)){
           delete items[key];
           return true;
        }
        return false;
    }
  • this.get函數:獲取指定鍵的值
this.get = function(key){
        return this.has(key) ? items[key] : undefined;
    }
  • this.clear函數:清除字典
this.clear = function(){
        items = {}
    }
  • this.key函數:獲取字典中全部的鍵並以數組的形式返回
this.keys = function(){
        let keys = [];
        for(key in items){
            keys.push(key);
        }
        return keys;
    }
  • this.size:獲取字典的大小
this.size = function(){
        return this.keys.length;
    }
  • this.values:獲取字典中全部的值並以數組的形式返回
this.values = function(){
        const values = [];
        for(key in items){
            values.push(items[keys]);
        }
        return values;
    }

測試

const dic = new Dictionary();
dic.set('name','liumin');
dic.set('age','12');
dic.set('sex','femaile');
console.log(dic.keys());
console.log(dic.values());
console.log(dic.size());
console.log(dic.has('name'));

打印結果:
圖片描述函數

相關文章
相關標籤/搜索