From your code it looks like you're trying to use PHP-style arrays in JavaScript. JavaScript arrays don't work like PHP arrays. Here's something that's more likely to work:
var lines = [
{ time: "10:00:00",
user: "User1",
content: "Line1"
},
{ time: "20:00:00",
user: "User2",
content: "Line3"
},
{ time: "30:00:00",
user: "User3",
content: "Line3"
}
];
To explain a littler further, in JavaScript you create a new array like this:
var myArray = [ 5, 10, 15 ];
The square brackets ([]
) denote the beginning and end of the array and commas (,
) separate each element in the array. Then, to access the elements of the array, we would do something like this:
alert( myArray[0] );
...which would give "5" (the first, or "0th," element in the array).
Now, whereas PHP has the associative array (array('a' => 1, ...)
), in JavaScript there's no "associative array"; rather, you use an "object literal," like this:
var myObject = { a: 5, b: 10, c: 15 };
This creates a new object with properties (you can think of them as keys) named "a," "b," and "c." There are two ways to access a property:
alert( myObject['b'] );
alert( myObject.b );
In both cases, "10" (the value we assigned to property "b") would be given.
Now back to your exercise. You'll see that here we've created an array ([]
) and given it three elements, each of which is an object literal ({}
). To access, say, the "user" property of the first element, we would do this:
alert( lines[0].user ); // => "User1"
Edit: If you want to name the elements of the outer array, it must be changed to an object literal, and can be nested like so:
var lines = {
one: { time: "10:00:00",
user: "User1",
content: "Line1"
},
two: { ...
},
...
};
I've named the items "one," "two," and "three" for clarity's sake, but you can use any values you please. However, if you intend to use numeric property names--0, 1, 2, etc--as in your example code, you may as well use the other array rather than the object. Unlike PHP, JavaScript does not allow "gaps" in an array. For example:
var myArr = [1,2];
myArr[5] = 3;
alert( myArr ); // => [ 1, 2, undefined, undefined, undefined, 3 ];