如何在Typescript中获取对象的哈希值?
如何在typescript中获取对象的哈希值 例如:如何在Typescript中获取对象的哈希值?,typescript,ecmascript-6,Typescript,Ecmascript 6,如何在typescript中获取对象的哈希值 例如: let user:any = {name:'tempuser', age:'29'}; let anotheruser:any = {name:'iam', age:'29'}; if( Object.GetHashCode(user) === Object.GetHashCode(anotheruser)){ alert('equal'); } 我们还可以识别对象是否被修改 另外,JavaScript和TypeScript都不提供通
let user:any = {name:'tempuser', age:'29'};
let anotheruser:any = {name:'iam', age:'29'};
if( Object.GetHashCode(user) === Object.GetHashCode(anotheruser)){
alert('equal');
}
我们还可以识别对象是否被修改 另外,JavaScript和TypeScript都不提供通用的哈希函数 您必须导入第三方库,例如,并为其提供对象的字符串表示:
Md5.hashStr(JSON.stringify(yourObject))
显然,根据您的具体用例,这可能是完美的,或者速度太慢,或者产生太多冲突…如果您想比较对象而不是数据,那么@Valery解决方案不适合您,因为它将比较数据而不是两个对象。
如果您想比较数据而不是对象,那么JSON.stringify(obj1)==JSON.stringify(obj2)就足够了,这是一种简单的字符串比较。对于非加密用途,如实现哈希表,下面是古老的字符串java哈希代码的类型脚本:
export function hashCode(str: string): number {
var h: number = 0;
for (var i = 0; i < str.length; i++) {
h = 31 * h + str.charCodeAt(i);
}
return h & 0xFFFFFFFF
}
导出函数hashCode(str:string):编号{
变量h:数值=0;
对于(变量i=0;i
JS对象没有哈希代码(除非您实现了哈希代码)。Ya。。这就是为什么我张贴在这里寻求帮助。请让我知道,若你们有任何库来获取一个对象的哈希值。谷歌是一个更好的地方来搜索这样一个库。这很有趣,但如果我理解正确的话,你只是在字符串中循环,然后将每个字符转换成一个字符码,对吗?与简单的字符串化和比较相比,这真的有什么优势吗?我很可能错过了一些东西,但感觉这只会增加额外的处理开销。