JS/Nodejs 无法访问对象的引用索引

Ini*_*igo 1 javascript indexing object node.js

我在nodejs中使用babyparse(PapaParse)来处理csv到javascript对象。

一个对象输出如下:

{ 'ProductName': 'Nike t-shirt',
   ProductPrice: '14.99',
   ProductPriceOld: '39.99' }
Run Code Online (Sandbox Code Playgroud)

您可以看到第一个索引以某种方式被引用('ProductName')。我无法访问这个值。我努力了:

console.log(product['ProductName'])
console.log(product["\'ProductName\'"])
console.log(product['\'ProductName\''])
console.log(product.ProductName)
Run Code Online (Sandbox Code Playgroud)

这一切都会导致“未定义”。Product.ProductPrice 或 Product['ProductPrice'] 给了我正确的值。

知道是什么原因造成的以及如何解决它吗?

编辑:如果我 JSON.stringify(product) 单引号消失了,但是如果我 JSON.parse(json) 进入对象,单引号返回..?

Que*_*tin 5

属性名称在输出中表示为字符串而不是标识符的原因是该名称包含标识符中不允许的字符。

具体来说,第一个字符是:U+FEFF : ZERO WIDTH NO-BREAK SPACE [ZWNBSP] (别名 BYTE ORDER MARK [BOM])

当您访问它时,您需要将其包含在属性名称中。

product["\uFEFFProductName"]
Run Code Online (Sandbox Code Playgroud)