比较十六进制字符串全部 return false

comparing hex string all return false

我正在比较下面的十六进制字符串 value:

'0xC6b250Dd4dD3372C6602200C78D900818627eC9e'
'0xC6b250Dd4dD3372C6602200C78D900818627eC9e'
'0x570324fd11272F2F980AfeBf09D680aC9F136B1k'

使用:

if(value === '0x570324fd11272f2f980afebf09d680ac9f136b1k');

为什么所有 return 都是假的?因为最后一个是一样的?

JavaScript 字符串比较区分大小写。在与 value.toLowerCase().

比较之前,您可以通过转换为小写字符来规范化值

示例:

const values = ['0xC6b250Dd4dD3372C6602200C78D900818627eC9e', '0xC6b250Dd4dD3372C6602200C78D900818627eC9e', '0x570324fd11272F2F980AfeBf09D680aC9F136B1k'];

console.log(values.map(value => value.toLowerCase() === '0x570324fd11272f2f980afebf09d680ac9f136b1k'));