Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Typescript中获取对象的哈希值?_Typescript_Ecmascript 6 - Fatal编程技术网

如何在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都不提供通

如何在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。。这就是为什么我张贴在这里寻求帮助。请让我知道,若你们有任何库来获取一个对象的哈希值。谷歌是一个更好的地方来搜索这样一个库。这很有趣,但如果我理解正确的话,你只是在字符串中循环,然后将每个字符转换成一个字符码,对吗?与简单的字符串化和比较相比,这真的有什么优势吗?我很可能错过了一些东西,但感觉这只会增加额外的处理开销。