在运行这些行之后,我在coffeescript中有以下代码,str的值仍为" d41d8cd98f00b204"。关于我可能做错什么的任何想法?
ClassLoader
答案 0 :(得分:2)
我认为in
仅适用于数组,请尝试:
str = str + dataDict[ind] if dataDict[ind]
答案 1 :(得分:2)
我做:
append = dataDict[ind]
str = str + append if append
你做的是编译:
if (__indexOf.call(dataDict, ind) >= 0) str = str + dataDict[ind];
,其中
__indexOf === [].indexOf //Array.prototype's indexOf
,Array.prototype
' s indexOf
无法处理非数组对象。
答案 2 :(得分:2)
来自fine manual:
您可以使用
in
来测试数组的存在,并使用of
来测试JavaScript对象密钥的存在。
in
用于检查元素是否在数组中(就像你使用for ... in
迭代一个数组一样),如果你想测试一个键是否在一个对象中你是使用of
(就像你使用for ... of
迭代一个对象一样):
str = str + dataDict[ind] if ind of dataDict
# -------------------------------^^
答案 3 :(得分:0)
检查if ind in dataDict
的扩展:
if (indexOf.call(dataDict, ind) >= 0) {
str = str + dataDict[ind];
}
检查if dataDict.hasOwnProperty(ind)
应该可以正常运行。