forked from platypush/platypush
[UI] Added quick String.hashCode
function.
This is needed in several places in the code where we need to compare if two strings differ, but either the strings are too long (e.g. content of large files) or we don't want to pass the original values (e.g. credentials, session tokens etc.).
This commit is contained in:
parent
818f60a468
commit
e6a358fe27
1 changed files with 17 additions and 0 deletions
|
@ -1,4 +1,21 @@
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
|
// From https://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript
|
||||||
|
String.prototype.hashCode = function(seed = 0) {
|
||||||
|
let h1 = 0xdeadbeef ^ seed, h2 = 0x41c6ce57 ^ seed;
|
||||||
|
for(let i = 0, ch; i < this.length; i++) {
|
||||||
|
ch = this.charCodeAt(i);
|
||||||
|
h1 = Math.imul(h1 ^ ch, 2654435761);
|
||||||
|
h2 = Math.imul(h2 ^ ch, 1597334677);
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507);
|
||||||
|
h1 ^= Math.imul(h2 ^ (h2 >>> 13), 3266489909);
|
||||||
|
h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507);
|
||||||
|
h2 ^= Math.imul(h1 ^ (h1 >>> 13), 3266489909);
|
||||||
|
return 4294967296 * (2097151 & h2) + (h1 >>> 0);
|
||||||
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Text",
|
name: "Text",
|
||||||
methods: {
|
methods: {
|
||||||
|
|
Loading…
Reference in a new issue