1

具有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

我想知道是否有更好/更有效的方法来做同样的事情?

4

1 回答 1

6

parseInt您已经拥有的方法很好,但是您可以通过删除呼叫来稍微减少它。isNaN将为您做到这一点:

for d of data.attributes
  if !_.isNaN(d)
    # property is a number

规范(强调添加):

如果参数强制为 NaN,则返回 true,否则返回 false。

  1. 如果ToNumber( number )为 NaN,则返回 true。
  2. 否则,返回假。

您也可以使用本机isNaN版本而不是下划线版本,因为d永远不会undefined

for d of data.attributes
  if !isNaN(d)
    # property is a number
于 2013-07-30T09:51:02.323 回答