拥有具有多个属性属性的Object
{
...,
attributes:{
[0]: "Capricorn One",
[1]: "Total Recall",
"name": "Jerry Goldsmith"
}
}
我想确定哪些是数字键,哪些不是。
目前我这样做:
for d of data.attributes
prop = parseInt(d)
if !_.isNaN(prop)
# property is a number
我想知道是否有更好/更有效的方法来做同样的事情?
答案 0 :(得分:6)
您已经拥有的方法很好,但您可以通过删除parseInt
来调整它。 isNaN
会为您做到这一点:
for d of data.attributes
if !_.isNaN(d)
# property is a number
来自the spec(强调补充):
如果参数强制为NaN,则返回true,否则返回false。
- 如果 ToNumber(数字)为NaN,则返回true。
- 否则,返回false。
醇>
您也可以使用原生isNaN
代替Underscore版本,因为d
永远不会是undefined
:
for d of data.attributes
if !isNaN(d)
# property is a number