【发布时间】:2015-11-10 02:35:52
【问题描述】:
我写了一个比较器来根据“id”对集合进行排序,如下所示:
comparator: function(coll) {
return coll.get('id');
}
这适用于输入:“id-1, id-0, id-2, id-199” 排序为“id-0, id-1, id-2, id-199”
但这里没有按数字排序:“id-1, id-0, id-2, id-199, id-99” 为“id-0, id-1, id-2, id-199, id -99" -- id-99 应该在 id-199 之前。
【问题讨论】:
-
试试
coll.get('id').replace("id-","") | 0 -
这可行,但初始字符串“id-”不是常量。
-
coll.get('id').replace(/[^0-9^\.]/g,"")|0 -
谢谢@suish - 这行得通,你能解释一下“| 0”部分吗?
-
它可能不需要,
| 0是按位运算,它什么都不做。但是 javascript 按位运算在开始计算之前会转换为 32 位数字,因此它的最终含义与“parseInt”相同。(比 parseInt 快一点)
标签: javascript backbone.js natural-sort