真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

使用JavaScript怎么實(shí)現(xiàn)哈希表

本篇文章為大家展示了使用JavaScript怎么實(shí)現(xiàn)哈希表,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián)建站專注于霍山企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城系統(tǒng)網(wǎng)站開發(fā)?;羯骄W(wǎng)站建設(shè)公司,為霍山等地區(qū)提供建站服務(wù)。全流程按需開發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)

屬性的枚舉:

var person = {
  name: "zzw",
  sex: "Male",
  age: 21
};
for (var prop in person) {
  console.log(prop + " ",person[prop]);
}

輸出:

使用JavaScript怎么實(shí)現(xiàn)哈希表

即對于對象而言,我們可以使用for in來枚舉對象的屬性。

屬性的刪除:

var person = {
  name: "zzw",
  sex: "Male",
  age: 21
};
var ifRemove = delete person.name;
for (var prop in person) {
  console.log(prop + " ",person[prop]);
}
console.log(ifRemove);

對象的屬性可以通過 delete 來刪除,并且會有一個(gè)返回值。 如下:

使用JavaScript怎么實(shí)現(xiàn)哈希表

注意: 一般只有對象的屬性才可以刪除,而變量是不能刪除的,如:

var x = 1;
console.log(delete x);

這時(shí)打印臺輸出false,因?yàn)樽兞渴遣豢杀粍h除的。

檢測屬性是否存在:

var person = {
  name: "zzw",
  sex: "Male",
  age: 21
};
console.log("age" in person);
console.log("someOther" in person);

前者返回true,后者返回false。 即我們可以使用in來確定一個(gè)對象是否含有該屬性。

屬性的添加:

var person = {
  name: "zzw",
  sex: "Male",
  age: 21
};
person["school"] = "XJTU";
console.log(person);

屬性的添加非常簡單,如上所示,最終打印出來的對象是包含 school 屬性的。

第二部分: 使用js實(shí)現(xiàn)哈希表

下面是通過構(gòu)造函數(shù)得到一個(gè)哈希表,在使用時(shí)只需實(shí)例化即可,且下面的功能較為豐富,在實(shí)際問題中,我們可以選擇性的使用 。

// 創(chuàng)建構(gòu)造函數(shù)HashTable
function HashTable() {
    // 初始化哈希表的記錄條數(shù)size
    var size = 0;
    // 創(chuàng)建對象用于接受鍵值對
    var res = {};
    // 添加關(guān)鍵字,無返回值
    this.add = function (key, value) {
      //判斷哈希表中是否存在key,若不存在,則size加1,且賦值
      if (!this.containKey(key)) {
        size++;
      }
      // 如果之前不存在,賦值; 如果之前存在,覆蓋。
      res[key] = value;
    };
    // 刪除關(guān)鍵字, 如果哈希表中包含key,并且delete返回true則刪除,并使得size減1
    this.remove = function (key) {
      if (this.containKey(key) && (delete res[key])) {
        size--;
      }
    };
    // 哈希表中是否包含key,返回一個(gè)布爾值
    this.containKey = function (key) {
      return (key in res);
    };
    // 哈希表中是否包含value,返回一個(gè)布爾值
    this.containValue = function (value) {
      // 遍歷對象中的屬性值,判斷是否和給定value相等
      for (var prop in res) {
        if (res[prop] === value) {
          return true;
        }
      }
      return false;
    };
    // 根據(jù)鍵獲取value,如果不存在就返回null
    this.getValue = function (key) {
      return this.containKey(key) ? res[key] : null;
    };
    // 獲取哈希表中的所有value, 返回一個(gè)數(shù)組
    this.getAllValues = function () {
      var values = [];
      for (var prop in res) {
        values.push(res[prop]);
      }
      return values;
    };
    // 根據(jù)值獲取哈希表中的key,如果不存在就返回null
    this.getKey = function (value) {
      for (var prop in res) {
        if (res[prop] === value) {
          return prop;
        }
      }
      // 遍歷結(jié)束沒有return,就返回null
      return null;
    };
    // 獲取哈希表中所有的key,返回一個(gè)數(shù)組
    this.getAllKeys = function () {
      var keys = [];
      for (var prop in res) {
        keys.push(prop);
      }
      return keys;
    };
    // 獲取哈希表中記錄的條數(shù),返回一個(gè)數(shù)值
    this.getSize = function () {
      return size;
    };
    // 清空哈希表,無返回值
    this.clear = function () {
      size = 0;
      res = {};
    };
}

第三部分: 應(yīng)用實(shí)例

問題:給定一個(gè)整型的數(shù)組(無序),找出其中的兩個(gè)數(shù)使得其和為某個(gè)指定的值,并返回這兩個(gè)數(shù)的下標(biāo)(數(shù)組下標(biāo)從0開始),假設(shè)數(shù)組元素的值各不相同。

實(shí)現(xiàn)如下:




  
  哈希表的使用


  

上述內(nèi)容就是使用JavaScript怎么實(shí)現(xiàn)哈希表,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


文章標(biāo)題:使用JavaScript怎么實(shí)現(xiàn)哈希表
文章轉(zhuǎn)載:http://weahome.cn/article/gsspie.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部