我对JS字典的简朴进修

我对JS字典的简朴进修

字典的观点

鸠合、字典和散列表都可以来存储不反复的值。
在鸠合中我们运用[值,值]来保留,在字典和散列表中运用[键,值]来存储数据。

字典也被称为映照

ES6中有鸠合Set类的完成,也有字典Map类的完成。

function  Dictionary() {
  var items = {};
}

相干操作要领

完成has(key)要领,推断某个键值是不是在这个字典中,有则返回true。

this.has = function(key) {
  return key in items;
}

完成set(key, value)要领,向字典中增加新元素。

this.set = function(key, value) {
  items[key] = value;
}

完成remove(key)要领,从字典中移除键值对应的数据值。

this.remove = function(key) {
  if(this.has(key)) {
    delete items[key];
    return true;
  }
  return false;
}

完成get(key)要领,查找特定的值。

this.get = function(key) {
  return this.has(key) ? items[key] : undefined;
}

引伸:undefinednull不一样,null示意变量没有值,undefined示意变量被声明但未赋值。

完成values()要领,将字典一切的值以数组的情势返回。

this.values = function() {
  var values = [];
  for(var k in items) {
    if(this.hasOwnProperty(k)) {
      values.push(items[key]);
    }
  }
  return values;
}

clear(),size(),keys()要领与Set类一致,这里不议论了。

完成getItems()要领

this.getItems = function() {
  return items;
}

运用Dictionary类

建立一个类的实例,然后给它增加三条电子邮件地址。

var dictionary = new Dictionary();
dictionary.set('Gandalf', 'gandalf@email.com');
dictionary.set('John', 'John@email.com');
dictionary.set('Tyrion', 'Tyrion@email.com');

运用要领

console.log(dictionary.has('Gandalf')); //true
console.log(dictionary.size()); //3
console.log(dictionary.keys()); //['Gandalf', 'John', 'Tyrion'];
console.log(dictionary.values()); //['Gandalf@email.com', John@email.com', 'Tyrion@email.com']
console.log(dictionary.get('Tyrion')); //Tyrion@email.com

实行以下代码

dictionary.remove('John');

console.log(dictionary.keys()); //['Gandalf', 'Tyrion']
console.log(dictionary.values()); //['Gandalf@email.com', 'Tyrion@email.com']
console.log(dictionary.getItems()); //{Gandalf: 'Gandalf@email.com', Tyrion: 'Tyrion@email.com'}
    原文作者:luckyzv
    原文地址: https://segmentfault.com/a/1190000008951641
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞