如何从对象的数组列表中访问对象?

时间:2017-01-27 11:17:21

标签: javascript jquery html

我在这方面很新,并试图自己创建一个商业网站。无论如何,这是我的对象:用户:

$(form).find('input').each(function(index, elem){
   if($(elem).val().length == 0){
       //this field is empty
   }
});

这是我的代码:

[{
  "id": "john_doe@yahoo.com",
  "Name": "John Doe",
  "Email": "john_doe@yahoo.com",
  "Password": "john"
},
{
  "id": "janedoe@yahoo.com",
  "Name": "Jane Doe",
  "Email": "janedoe@yahoo.com",
  "Password": "jane"
}]

我需要从本地存储中访问ID,但我不知道如何。请帮帮我。

3 个答案:

答案 0 :(得分:1)

由于您要存储/加载数组,因此需要循环所有元素并分别访问每个元素的属性,例如:

$.each(users, function(i, user)
{ 
   console.log(user.id);
});

如果您需要特定元素,可以通过索引访问它们,也可以使用filter函数通过属性值获取它们。

var foundUsers = users.filter(function(user) {
       return user.id === "john_doe@yahoo.com";
});

filter函数返回一个数组。

答案 1 :(得分:1)

您的对象object: users:是一个数组,此数组的每个元素都是user object,因此,如果您想要在特定索引处提取id,则可以执行id = users[index].id之类的操作。 1}}

你也可以在你的对象中循环获取所有ID,如下所示

var id = [];
for(var i=0;i<users.length;i++){
id.push(users[i].id);    
}

我建议您使用sessionStorage而不是本地存储。

window.sessionStorage.setItem('somekey', value);
window.sessionStorage.getItem('somekey');

答案 2 :(得分:1)

首先需要使用JSON.parse()解析字符串,然后循环以获取所需的每个值。请参阅下面的工作代码:

var dataFromLocalStorage = `[{
  "id": "john_doe@yahoo.com",
  "Name": "John Doe",
  "Email": "john_doe@yahoo.com",
  "Password": "john"
},
{
  "id": "janedoe@yahoo.com",
  "Name": "Jane Doe",
  "Email": "janedoe@yahoo.com",
  "Password": "jane"
}]`;

dataFromLocalStorage = JSON.parse(dataFromLocalStorage);
dataFromLocalStorage.forEach(function(currentVal){
  console.log(currentVal.id);
});