我正在使用lodash v.3.9.3 请考虑以下代码:
console.log(_.min(["10", "09:15"]));
console.log(_.lt("10", "09:15"));
输出令我感到害怕:
10
false
那里发生了什么?
答案 0 :(得分:3)
_.min
仅适用于数字,并将每个非数字参数转换为数字。由于Number("09:15")
为NaN
,因此最小(且仅限)数字结果为10
。
_.lt
:10 < NaN
的相同内容为false
(10 > NaN
也是如此。
从您的问题中不清楚您正在寻找什么样的比较,本地比较值(即数字作为数字和其他所有字符串),您可以使用类似
的内容min = a.reduce(function(m, x) {
return m < x ? m : x
}, a[0])