您好,我在比较两个本应相同的字符串时遇到了问题,但是当我在 alert(f==g) 中对其求值时,它的求值结果为 false。
var oTrackCarriers = {
"9045": [
["A"],
["B"],
["C"]
],
"9046": [
[" "]
]
};
var oHeadingCarriers = {
"Ripplefold": [
["A"],
["B"],
["C"],
["D"]
],
"PinchPleat": [
["C"],
["D"]
]
};
var HeadingList = oHeadingCarriers["Ripplefold"];
var TrackList = oTrackCarriers["9045"]
var f = (TrackList[0].valueOf());
var g = (HeadingList[0].valueOf());
alert(f);
alert(g);
alert(f == g);
这是因为我预先将两个值放入数组中吗?
这是运行 http://jsfiddle.net/sQrST/17/embedded/result/ 谢谢你的帮助
最佳答案
var oTrackCarriers = { "9045": [["A"], ["B"], ["C"]],
"9046": [[" "]] };
var TrackList = oTrackCarriers["9045"]; // TrackList = [["A"], ["B"], ["C"]]
var f = (TrackList[0].valueOf()) // f = ["A"]
alert()
以非直观的方式显示数组,因此隐藏了 f(和 g)是数组的事实,并且数组的比较不会对元素进行元素明智的比较,它比较变量是否引用相同数组;
["A"] == ["A"]
> false
"A" == "A"
> true
a = ['A']
b = a
a == b
> true
关于javascript - 两个不相等的相同字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18109723/