我想知道如何将一个ID减去一个十六进制值,因为我的ID不匹配一个。我实际上有5ed5a251e0fc773a37ac2abc时有5ed5a251e0fc773a37ac2abd。我该怎么办?
背景:我将带有Gridfs-stream的文件存储到mongo中。在实际的数据库中,ID总是大一个。也许这是grifs-stream一方弃用的问题,但我仍然想解决这个问题。任何帮助,将不胜感激。
我做了这个
console.log( longHexaSubstractOne( '5ed5a251e0fc773a37ac2abd' ) )
function longHexaSubstractOne(longHexa)
{
let inHx = (longHexa.length%2) ? '0'+longHexa : longHexa // add leading zero if value length is even
, arrX = inHx.match(/.{2}/g).map(v=>parseInt(v,16)) // cut by 8 bit an converse to integer value
;
for (let i=arrX.length;i--;) // make substract of 1
{
if (arrX[i]) { arrX[i]--; break }
else { arrX[i] =255 }
}
return arrX.map(v=>('0'+v.toString(16)).slice(-2)).join('').replace(/^0+/, '')
}