我对 JavaScript 很陌生,但对 python 很熟悉。在 Python 中,我得到以下输出:
In [1]: [1,9,[5,4,2]] > [1,9,[14,5,4]]
Out[1]: False
在 JavaScript 中:
> [1,9,[5,4,2]] > [1,9,[14,5,4]]
true
似乎在比较之前将数组转换为字符串。
现在我想自己编写一个函数并遍历数组并比较每个元素。我想出了这个咖啡脚本代码:
compare_list = (a, b)->
if typeof a == "object" and typeof b != "object"
return 1
else if typeof a != "object" and typeof b == "object"
return -1
else if typeof a != "object" and typeof b != "object"
if a > b
return 1
else if a < b
return -1
else
return 0
else if typeof a == "object" and typeof b == "object"
for i in [0...a.length]
if i > (b.length-1)
return 1
tmp = compare_list a[i], b[i]
if tmp != 0
return tmp
if b.length > a.length
return -1
return 0
它以这种方式工作,但typeof a == "object"
对我来说这部分看起来不正确。是否有更简单/更好/更强大的解决方案?
谢谢你的帮助。