2017-04-03 209 views
-1

我正在創建一個離子應用程序。我需要將一個對象的值存儲到另一個變量中;對象數組的名稱是username無法訪問Javascript對象

這是username[0]

Object {username: "user1"} 

這裏我要的username值存儲到另一個$scope變量。所以我做了如下:

$scope.username=$scope.username[0].username; 

但是,它返回錯誤。爲什麼?以及如何解決它。

+0

,什麼是錯誤? – Roope

+0

我寫了一些對象。有沒有解釋我爲什麼得到否定的投票? – camoflage

回答

-1

你有一個對象但您嘗試訪問它作爲一個陣列[0],因此將返回undefined

您可以用點號

obj.username 
訪問對象

或帶括號的符號

obj["username"] 

let username = { 
 
    username: "user1" 
 
}; 
 

 
console.log(username.username); 
 
console.log(username['username']);

+0

它說在問題中的「對象的數組」。 – Roope

+0

@Roope我認爲OP是錯誤的,實際上有一個對象 – Weedoze

+0

它是一個對象數組。在console.log($ scope.username [0])後顯示控制檯輸出Object {username:「user1」}; – camoflage

0

好吧,如果username是在你的代碼中的第一個地方一個數組,你寫的:

$scope.username=$scope.username[0].username; 

所以要覆蓋現有username陣列與object,然後下一次你會撥打$scope.username[0].username它會失敗並拋出一個錯誤:Can't read property username of undefined因爲username[0]undefined在這裏。

因此,您需要在範圍中使用不同的變量來引用usersusername

+1

它在問題中說object_的_array被命名爲'username',而不是對象。雖然沒有代碼來確認實際是否是這種情況... – Roope

+0

它是一個對象數組。在console.log($ scope.username [0])後顯示控制檯輸出Object {username:「user1」}; – camoflage

+0

@camoflage現在有意義,如果你寫了:'$ scope.username = $ scope.username [0] .username;',看看我的編輯,你用'object'覆蓋'array'。 –

0

試試這個

var obj = {username: "user1"}; 

$scope.username = obj.username;