Given the following object, how would I dynamically access both levels of data?
var object = {
"one": {
"0": "foo",
"1": "foo foo",
"2": "foo foo foo",
"3": "foo foo foo foo",
"4": "foo foo foo foo foo"
},
"two": {
"0": "bar",
"1": "bar bar",
"2": "bar bar bar",
"3": "bar bar bar bar",
"4": "bar bar bar bar bar"
}
};
Shouldn't I be able to do something along the lines of:
var outer = "one",
inner = "3";
console.log(object[outer][inner]);
And have the output be "foo foo foo foo"?
Yes. And it does.
$ cat so2.js var object = { "one": { "0": "foo", "1": "foo foo", "2": "foo foo foo", "3": "foo foo foo foo", "4": "foo foo foo foo foo" }, "two": { "0": "bar", "1": "bar bar", "2": "bar bar bar", "3": "bar bar bar bar", "4": "bar bar bar bar bar" } };
var outer = "one", inner = "3";
console.log(object[outer][inner]);
$ node so2.js foo foo foo foo
You could try out using the index, but first you need to get the index of the keys "one","two" . Something like :
object[Object.keys(object)[0]][1] // "foo foo"
object[Object.keys(object)[1]][1] // "bar bar"
Here is the code for accessing all the values as per your json object :
for(var first in object)
{
for(var second in object[first])
{
console.log(object[first][second]);
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.