我需要将对象键排序为整数,它们都是肯定的整数。 (使用如示例中的数字变量设置)。
这不是一个真正的问题,我只是好奇。
var steps = {}
steps[1] = true
steps[9] = true
steps[3+2] = true
steps[40] = true
var unsorted = Object.keys(steps), sorted = unsorted
.map(function(a){ return parseInt(a) })
.sort(function(a, b){ return a - b })
console.log(sorted)
上面,我需要map
和parseInt
这一行吗?如果我注释掉该行,那么的所有内容似乎都就可以了。但我不确定。是否存在使用parseInt
可能有所不同的情况?
答案 0 :(得分:5)
不管你为substraction operator做了什么,你都不需要自己解析数字。来自规范:
...
5.让 lnum 为ToNumber( lval ) 6.让 rnum 为ToNumber( rval )。
因此两个操作数都转换为数字类型。
您的代码可以是
var unsorted = Object.keys(steps),
sorted = unsorted.sort(function(a, b) { return a - b; });
答案 1 :(得分:0)
可以执行以下操作:)
.sort((a, b) => parseInt(a) - parseInt(b))