gpt4 book ai didi

javascript - 相等字符串比较返回 false

转载 作者:行者123 更新时间:2023-11-28 10:07:08 26 4
gpt4 key购买 nike

在两个相等的字符串之间执行命令 == 时,我得到返回 false。

以下代码:

代码中的某处:

Arr.prod.push({
"id" : product.id,
"nameProd" : product.name
});

在其他本地代码中:

var id;
for(i in Arr.prod){
if( $.trim(str) == $.trim(Arr.prod[i].nameProd)){
id = Arr.prod[i].id;
break;
}
}

i = 3时,Array.prod[i].nameProd的值等于str值。这些变量的值为:“DVD Player Automotivo CED229X - Tela 3、Entrada USB Frontal、Entrada SD Flip Down e Controle Remoto - Philips - Philips - Americ ...”。但比较总是返回 false。

出了什么问题?

编辑

添加迭代代码:

console.log( 'str = ' + $.trim(str).toLowerCase(), ', item = ' + 
$.trim(Arr.prod[i].nameProd).toLowerCase(), 'result = ' +
($.trim(str).toLowerCase() == $.trim(Arr.prod[i].nameProd).toLowerCase()));

结果

str = dvd player automotivo ced229x - tela 3'', entrada usb frontal, entrada sd flip down e controle remot ... , item = tv 46" led full hd (1920 x 1080 pixels) - 46pfl7606d/78 - smart tv ambilight spectra 2, online tv, c ... result = false

str = dvd player automotivo ced229x - tela 3'', entrada usb frontal, entrada sd flip down e controle remot ... , item = home theater c/ dvd - 250 w rms, hdmi,divx, usb - hts3510/78 - philips - philips - americanas.com.br result = false

str = dvd player automotivo ced229x - tela 3'', entrada usb frontal, entrada sd flip down e controle remot ... , item = notebook hp result = false

str = dvd player automotivo ced229x - tela 3'', entrada usb frontal, entrada sd flip down e controle remot ... , item = tenis rebook result = false

str = dvd player automotivo ced229x - tela 3'', entrada usb frontal, entrada sd flip down e controle remot ... , item = dvd player automotivo ced229x - tela 3'', entrada usb frontal, entrada sd flip down e controle remot ... result = false

最后的比较应该是正确的

看这个

console.log('str : ' + escape(str));
console.log('arr : ' + escape(Arr.prod[i].nameProd)));

结果:

str : DVD%20Player%20Automotivo%20CED229X%20-%20Tela%203%27%27%2C%20Entrada%20USB%20Frontal%2C%20Entrada%20SD%20Flip%20Down%20e%20Controle%20Remot%20...

arr : DVD%20Player%20Automotivo%20CED229X%20-%20Tela%203%27%27%2C%20Entrada%20USB%20Frontal%2C%20Entrada%20SD%20Flip%20Down%A0e%20Controle%20Remot%20...

查看 2 个日志中的“Down”字样:

在 str 中包含 %20e%,在 arr 中包含 %A0e%。

发生了什么?

谢谢。

最佳答案

由于某种原因,您的代码在“Down”一词后生成一个不间断空格(ascii 160 或 A0),即 %A0

为什么会发生这种情况我不知道,但这就是你需要解决的问题。

如果你不知道如何解决这个问题,那么你至少可以通过在比较之前用正常空格替换不间断空格来解决这个问题,如下所示:

$.trim(str).replace(/\xa0/g,' ') == $.trim(Arr.prod[i].nameProd.replace(/\xa0/g,' '))

关于javascript - 相等字符串比较返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8121643/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com