當執行命令==
之間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 –