当执行命令==
之间2等于字符串的我得到的返回false。等于字符串比较返回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播放机Automotivo CED229X - Tela 3,Entrada USB Frontal,Entrada SD翻转e Controle Remoto - 飞利浦 - 飞利浦 - Americ ...”。但是比较总是返回错误。
出了什么问题?
EDIT
在迭代添加代码:
console.log('str = ' + $.trim(str).toLowerCase(), ', item = ' +
$.trim(Arr.prod[i].nameProd).toLowerCase(), 'result = ' +
($.trim(str).toLowerCase() == $.trim(Arr.prod[i].nameProd).toLowerCase()));
RESULT
STR = DVD播放机automotivo ced229x - 截图3 '',ENTRADA USB额叶, entrada sd翻转e controle remot ...,item =电视46“led全高清 (1920 x 1080像素) - 46pfl7606d/78 - 智能电视流光溢彩2, 网络电视,C ...结果=假
STR = DVD播放机automotivo ced229x - 截图3 '',ENTRADA USB额叶, entrada sd flip down e controle remot ...,item =家庭影院c/dvd - 250 w rms,hdmi,divx,usb - hts3510/78 - philips - philips - americanas.com.br结果= false
str = dvd player automotivo ced229x - tela 3'',entrada usb frontal, entrada sd flip down e controle remot ...,item = notebook hp result = false
海峡= DVD播放机automotivo ced229x - 屏幕截图3 '',ENTRADA USB正面, ENTRADA SD翻转向下e CONTROLE REMOT ...,项目=捷尼斯重新预订结果 =假
海峡= DVD播放机automotivo ced229x - 屏幕截图3 '',entrada usb frontal, entrada sd翻转e controle remot ...,item = dvd player automotivo ced229x - tela 3'',entrada usb frontal,entrada sd flip down e controle remot ...结果=假
最后的比较应该是真实的
看看这个
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日志的:
在str中包含%20e%,因为在arr中包含%A0e%。
发生了什么事?
谢谢。
把一个'控制台。 log($ .trim(str),$ .trim(Array.prod [i] .nameProd),$ .trim(str)== $ .trim(Array.prod [i] .nameProd));'between如果行。并告诉我们会发生什么。 –
也可能不是错误的原因,但为什么你使用数组构造函数(作为命名空间或其他)? – Yoshi
请尝试重现这与http://jsfiddle.net –