Javascript JS/Nodejs可以';t访问对象的引用索引
我在nodejs中使用babyparse(PapaParse)来处理csv到javascript对象 一个对象输出如下所示:Javascript JS/Nodejs可以';t访问对象的引用索引,javascript,node.js,object,indexing,Javascript,Node.js,Object,Indexing,我在nodejs中使用babyparse(PapaParse)来处理csv到javascript对象 一个对象输出如下所示: { 'ProductName': 'Nike t-shirt', ProductPrice: '14.99', ProductPriceOld: '39.99' } 您可以看到,第一个索引以某种方式被引用(“ProductName”)。 我无法访问此值。我试过: console.log(product['ProductName']) console.log(
{ 'ProductName': 'Nike t-shirt',
ProductPrice: '14.99',
ProductPriceOld: '39.99' }
您可以看到,第一个索引以某种方式被引用(“ProductName”)。
我无法访问此值。我试过:
console.log(product['ProductName'])
console.log(product["\'ProductName\'"])
console.log(product['\'ProductName\''])
console.log(product.ProductName)
这一切都会导致“未定义”。product.ProductPrice或product['ProductPrice']为我提供了正确的值
你知道是什么原因造成的吗?如何解决
编辑:如果I JSON.stringify(product),则单引号消失,但是如果I JSON.parse(JSON)插入到对象中,则单引号返回..?在输出中将属性名称表示为字符串而不是标识符的原因是,该名称包含标识符中不允许的字符 具体来说,第一个字符是:U+FEFF:ZERO-WIDTH不间断空格[ZWNBSP](别名字节顺序标记[BOM]) 访问属性名称时,需要将其包含在属性名称中
product["\uFEFFProductName"]
属性名称在输出中表示为字符串而不是标识符的原因是该名称包含标识符中不允许的字符 具体来说,第一个字符是:U+FEFF:ZERO-WIDTH不间断空格[ZWNBSP](别名字节顺序标记[BOM]) 访问属性名称时,需要将其包含在属性名称中
product["\uFEFFProductName"]
啊,我没有注意到这个不可打印的字符——现在你指出了,这是显而易见的再加上一个,我将删除我的答案。谢谢,我自己永远也不会明白这一点。我使用body=body.replace(/\uFEFF/g,'')从输入中删除该字符,现在处理工作正常。啊,我没有注意到不可打印的字符-现在您指出了它,这很明显。;)再加上一个,我将删除我的答案。谢谢,我自己永远也不会明白这一点。我使用body=body.replace(/\uFEFF/g'')从输入中删除它,现在处理工作正常。