无法访问Javascript对象

无法访问Javascript对象

问题描述:

我正在创建一个离子应用程序。我需要将一个对象的值存储到另一个变量中;对象数组的名称是username无法访问Javascript对象

这是username[0]

Object {username: "user1"} 

这里我要的username值存储到另一个$scope变量。所以我做了如下:

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

但是,它返回错误。为什么?以及如何解决它。

+0

,什么是错误? – Roope

+0

我写了一些对象。有没有解释我为什么得到否定的投票? – camoflage

你有一个对象但您尝试访问它作为一个阵列[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

好吧,如果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'。 –

试试这个

var obj = {username: "user1"}; 

$scope.username = obj.username;