2015-09-25 58 views
2

我响应对象有一个名为“50”现场,所以现在我想访问和保存数据做这样的事情:访问响应数据

var thing = $scope.data.array[0].50;

但是我在控制台上收到一个错误,当我用这个函数甚至没有运行时重新加载页面。当我摆脱50,一切都很好。在$scope.data.array[0]内部确实存在一个名为“50”的字段,我无权更改回复。是否有什么问题,因为该字段被称为“50”,也许JS是打断它作为一个数字?

此外,当我将“50”更改为“af”之类的随机内容时,我在刷新时不会出现错误。

这不起作用 var thing = $scope.data.array[0].50;

这个作品 var thing = $scope.data.array[0].af;

+1

尝试'变种的事情= $ scope.data.array [0] [ “50”];' –

+0

@JoshC酷THX!这样可行! – Yan

+0

请参阅:http://stackoverflow.com/questions/16908476/javascript-object-property-name-as-number –

回答

3

下,如果你的数组的第一个元素有一个名为“50”的属性应该工作。

var thing = $scope.data.array[0]["50"];

属性访问通过使用点符号或括号符号提供访问对象的属性。

Syntax 
object.property 
object["property"] 

JavaScript对象也是关联数组(散列)。使用这些,你可以把一个关键字串与一个值串联起来,如上例所示。

访问$scope.data.array[0].af;时,为什么不出现错误的原因是因为“af”是属性的有效标识符。点符号仅适用于有效标识符的属性名称。标识符必须以letter$,_unicode escape sequence开头。

对于所有其他属性名称,必须使用括号表示法。

+0

谢谢!这样可行! – Yan

+0

@Yan请确保接受答案,如果它解决了您的问题。 – Dayan