在我的javascript代码中,我有对象变量a,b和c,每个对象包含属性x,y和z。这些都是以通常的方式构建的:
var a = {
x: 'foo',
y: 'bar',
z: 'foobar'
};
出于我的项目的目的,对象a,b和c存储在一个数组中:
var array = [a, b, c];
计划是能够根据需要从此数组中提取给定的对象属性,但我无法使其工作。我可以通过调用a.x来正常拉取一个对象属性,但是尝试检索array [0]只能得到我" [object Object]",而array [0] .x返回undefined。我还尝试了#34; array [0] [0]",但只返回" [object Object]"的第一个字符。
毫无疑问,这是基本的东西,但我很难过。有人可以让我直截了当吗?
编辑:忘记指示我的对象的属性是字符串。道歉。
编辑2:每个人都说我的代码没有问题是正确的:它实际上按照我所描述的方式工作。那么,似乎放弃的东西是,在填充之后,我的数组被保存在localStorage中然后被检索,然后我在检索后尝试访问它。我需要重新考虑我的数据保存策略。
答案 0 :(得分:1)
您仍然可以使用localStorage
,只需在存储之前使用JSON.stringify()
,然后在检索后使用JSON.parse()
。
// Setting an item in localStorage
localStorage.setItem("arrItem", JSON.stringify(array));
// Getting an item in localStorage
var array = JSON.parse(localStorage.getItem("arrItem"));
// Will properly log "foo"
console.log(array[0].x);