生成数组唯一标识,数组任意更改顺序和字段,适合表单版本标识生成
- 该数组唯一标识生成算法,仅适合数组元素值唯一
- 最近为了搞一个自定义表单,并且为该自定义表单设置一个唯一的版本标识
- 例如:有那么一个需求,例如我每次提交 字段所在的顺序是不一样的
let arrA = [1,2,3];
let arrB = [2,1,3];
let arrC = [3,2,1];
假设每次提交的顺序都不一致
- 如果采用字符串拼接的方式,则每次提交的顺序不同
- 加密后就会导致 Hash值不同
let arrA = [1,2,3];
let arrB = [2,1,3];
let arrC = [3,2,1];
那么大佬可能看出来了,下面展示真正的实现方式
- 通过字段值累加的方式得出一个唯一的值
- 那么就有小伙伴要问了:假如我的是字符串呢,又或者是字符串加数字或符号呢?
- 那么就得使用进制算法将字符串转换成 正整数 了
- 详细请看我发的文章:(进制算法原理)https://blog.csdn.net/u014771745/article/details/102829562
话不多说:放秃顶毒!!!
let arrA = [1,2,3];
let arrB = [2,3,1];
let arrC = [3,1,2];
let arrD = [3,4,1];
function arrayHash(arr) {
let sumNum = 0;
for(let i=0;i < arr; i ++) {
sumNum += arr[i];
}
let hash = md5(sumNum);
return hash;
}