2015-09-25 49 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