TypeScript中是否有任何已定义的HashTable类,如C#

问题描述 投票:-1回答:1

我正在使用TypeScript开发Web项目。在这里,我需要像[[C#HashTable这样的打字稿中的HashTable功能。但是我已经在JavaScript。

中开发了它。 this.length = 0; this.items = []; this.add = function (key, value) { this.previous = undefined; if (this.containsKey(key)) { this.previous = this.items[key]; } else { this.length++; } this.items[key] = value; return this.previous; }; this.clear = function () { this.items = {}; this.length = 0; }; this.contains = function (key) { return this.items.hasOwnProperty(key); }; this.containsKey = function (key) { return this.items.hasOwnProperty(key); }; this.containsValue = function (key) { return (this.items.hasOwnProperty(key) && this.items[key] != undefined) ? true : false; }; this.getItem = function (key) { if (this.containsKey(key)) { return this.items[key] } else { return undefined; } }; this.keys = function () { var keys = []; for (var k in this.items) { if (this.containsKey(k)) { keys.push(k); } } return keys; }; this.remove = function (key) { if (this.containsKey(key)) { this.previous = this.items[key]; this.length--; delete this.items[key]; return this.previous; } else { return undefined; } }; this.values = function () { var values = []; for (var k in this.items) { if (this.containsKey(k)) { values.push(this.items[k]); } } return values; }; this.each = function (fn) { for (var k in this.items) { if (this.containsKey(k)) { fn(k, this.items[k]); } } }; var previous = undefined; } return HashTable;
像这样,打字稿具有预定义的代码?还是我需要将这些代码从JS重写为TS?在打字稿中此

HashTable是否有任何简单的属性或类?

或TS中的其他任何属性都具有相同的[[HashTable功能?
javascript typescript hashtable typescript2.0
1个回答
1
投票

Map,就我所知最接近HashTable。它的主要优点是它的键可以是Object类型。

    Set,它基本上是一个唯一的数组。
  • Object也称为{}。键值存储。
  • 我建议使用对象,但是如果您的键需要是对象,请使用Map
  • JavaScript Object{}Map快20倍。因此,仅在需要将对象用作键时才使用Map

  • © www.soinside.com 2019 - 2024. All rights reserved.