嘿,我试图在JS中创建一个嵌套数组
var lines = new Array(
"0"= new Array(
0['time']="10:00:00",
0['user']="User1",
0['content']="Line1",
),
"1"= new Array(
1['time']="20:00:00",
1['user']="User2",
1['content']="Line2",
),
"2"= new Array(
2['time']="30:00:00",
2['user']="User3",
2['content']="Line3",
),
);
Run Code Online (Sandbox Code Playgroud)
Chrome的调试器告诉我,在第一个嵌套数组的末尾是"意外的令牌"
Jor*_*ing 31
从您的代码看起来您正在尝试在JavaScript中使用PHP样式的数组.JavaScript数组不像PHP数组那样工作.这是更有可能工作的东西:
const 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',
},
];
Run Code Online (Sandbox Code Playgroud)
为了进一步解释一个小问题,在JavaScript中你创建一个像这样的新数组:
const myArray = [ 5, 10, 15 ];
Run Code Online (Sandbox Code Playgroud)
方括号([])表示数组的开头和结尾,逗号()表示数组,的元素.然后,要访问元素,我们会这样做:
alert( myArray[0] );
Run Code Online (Sandbox Code Playgroud)
...将给出5(数组中的第一个或"第0个"元素).
现在,虽然PHP有关联数组(array('a' => 1, ...)),但在JavaScript中没有"关联数组"; 相反,你使用"对象文字",像这样:
const myObject = { a: 5, b: 10, c: 15 };
Run Code Online (Sandbox Code Playgroud)
这将创建与属性的新对象(你可以把它们想象成键)命名的a,b和c.有两种方法可以访问属性:
alert( myObject['b'] );
alert( myObject.b );
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,都会给出10(我们赋予财产的价值b).
现在回到你的练习.你会看到我们在这里创建了一个array([])并给它三个元素,每个元素都是一个对象文字({}).要访问user第一个元素的属性,我们会这样做:
alert( lines[0].user ); // => "User1"
Run Code Online (Sandbox Code Playgroud)
编辑:如果要命名外部数组的元素,则必须将其更改为对象文字,并且可以嵌套,如下所示:
const lines = {
one: {
time: '10:00:00',
user: 'User1',
content: 'Line1',
},
two: {
// ...
},
// ...
};
Run Code Online (Sandbox Code Playgroud)
我命名的项目one,two等,为清晰起见,但你可以使用任何值,您请.但是,如果您打算在示例代码中使用数字属性名称0,1- 2,等等,您也可以使用其他数组而不是对象.与PHP不同,JavaScript不允许在数组中使用"间隙" - 它们将被填充undefined.例如:
const myArr = [1, 2];
myArr[5] = 3;
alert( myArr ); // => [ 1, 2, undefined, undefined, undefined, 3 ];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44646 次 |
| 最近记录: |