0

我在 node.js(同步 api)中使用 csv-parse 将 csv 解析为 js 对象。一切都很好,除了我在访问第一个键值对时遇到了很多麻烦。

如果我控制台记录我得到的结果对象

//object scorecard
{
  'PlayerName': 'Par',
  CourseName: 'Lismore Park Wanaka',
  LayoutName: 'Mid 2020 (New Hole Numbering)',
  Date: '01-07-21 12:44',
  Total: '55',
  '+/-': '',
  Hole1: '3',
  Hole2: '3',
  Hole3: '3',
  Hole4: '3',
  Hole5: '3',
  Hole6: '3',
  Hole7: '3',
  Hole8: '3',
  Hole9: '4',
  Hole10: '3',
  Hole11: '3',
  Hole12: '3',
  Hole13: '3',
  Hole14: '3',
  Hole15: '3',
  Hole16: '3',
  Hole17: '3',
  Hole18: '3'
}

试图访问 PlayerName 我得到未定义,我假设因为 PlayerName 在引号中(此对象由 csv-parse 生成)。scorecard.PlayerName 和 scorecard['PlayerName'] 不起作用。但是,如果我使用..

let keys = Object.getOwnPropertyNames(scorecard) 
console.log(scorecard[keys[0]])

我确实得到了 Par 的预期结果。

4

2 回答 2

1

var a = {
  'PlayerName': 'Par',
  CourseName: 'Lismore Park Wanaka',
  LayoutName: 'Mid 2020 (New Hole Numbering)',
  Date: '01-07-21 12:44',
  Total: '55',
  '+/-': '',
  Hole1: '3',
  Hole2: '3',
  Hole3: '3',
  Hole4: '3',
  Hole5: '3',
  Hole6: '3',
  Hole7: '3',
  Hole8: '3',
  Hole9: '4',
  Hole10: '3',
  Hole11: '3',
  Hole12: '3',
  Hole13: '3',
  Hole14: '3',
  Hole15: '3',
  Hole16: '3',
  Hole17: '3',
  Hole18: '3'
};

console.log(a['PlayerName'])

于 2021-07-15T10:32:40.473 回答
0

在上面提供的完整性检查(谢谢)之后,在相关对象属性的开头发现了一个宽度为 0 的无间断空格字符。

于 2021-07-15T22:18:17.457 回答