Javascript 在TypeScript中是否有任何定义的哈希表类,如C#
我正在使用TypeScript开发web项目。在这里,我需要像C#HashTable这样的typescript中的HashTable功能。但我已经用JavaScript开发了它 像这样,Typescript有预定义的代码吗?或者我需要将这些代码从JS重写到TS?typescript中是否有此哈希表的简单属性或类Javascript 在TypeScript中是否有任何定义的哈希表类,如C#,javascript,typescript,hashtable,typescript2.0,Javascript,Typescript,Hashtable,Typescript2.0,我正在使用TypeScript开发web项目。在这里,我需要像C#HashTable这样的typescript中的HashTable功能。但我已经用JavaScript开发了它 像这样,Typescript有预定义的代码吗?或者我需要将这些代码从JS重写到TS?typescript中是否有此哈希表的简单属性或类 或者TS中的任何其他属性来实现相同的哈希表功能?现代JavaScript有三个选项: 映射,最接近我的知识的哈希表。它的主要优点是它的键可能是Object类型 Set,它基本上是一个独
或者TS中的任何其他属性来实现相同的哈希表功能?现代JavaScript有三个选项:
,最接近我的知识的哈希表。它的主要优点是它的键可能是映射
类型Object
,它基本上是一个独特的数组Set
也称为对象
。键值存储{}
贴图
JavaScript
Object
或{}
比Map
快20倍左右。因此,只有当您需要使用对象作为键时,才使用Map
。在我看来,这似乎是一种过度杀戮。JS对象{}也可以像散列一样工作。它包含所有已定义的等效函数使用Map
?你想把这段代码转换成typescript吗?可能的副本可以用你建议的map对象把我的JS代码转换成TS吗?@Raja我真的不明白你的问题。。。要将JS转换为TS,只需重命名文件并设置编译。
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;