javascript - 两个不相等的相同字符串

标签 javascript

您好,我在比较两个本应相同的字符串时遇到了问题,但是当我在 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/

相关文章:

javascript - React.addons.batchedUpdates API 的用途是什么?

javascript - 浏览器如何突出显示文本而不在单词周围添加任何标签

javascript - 尝试使用 Python 和 Selenium 迭代地滚动和抓取网页

javascript - 查找最近的元素

javascript - 如何使用javascript将数据格式 "YYYY-mm-dd hh:mm:ss"转换为 "dd-mm-YYYY hh:mm:ss"?

javascript - 使用 Jquery 获取动态事件中的文本

javascript - 如何在coffeeScript中翻译Promise.try

javascript - 在 D3.js hover 中过滤和匹配 json 数据

javascript - 事件菜单突出显示 CSS

javascript - Bootstrap Popover 功能