相信学过C语言的开发者刚接触JavaScript时都会很不习惯,C语言中的虽然是结构化面向过程的编程语言,但是C语言中也有封装的思想,例如C语言结构体和公用体等,在他们中都可以直接定义变量。C语言可以将他们当做一个类或者数据类型来定义数组,但是在JavaScript中则不然。
JavaScript中有多种数据类型,但是JavaScript是一种弱语言,所有的变量都由var定义(也可以不定义直接使用,只不过是一种编程习惯)。所以与其说是JavaScript有多种数据类型,不如说是JavaScript中只有一种数据类型,但是这种数据类型可以存储很多种数据类型,各种数据类型可以直接转换,例如定义整形变量(var i=0;)却可以给i赋值为字符串(i=“hello”;)。所以JavaScript不能直接封装数据类型,只能封装变量或者对象,因为逻辑上JavaScript只有一种数据类型(物理上会根据变量值将变量解析为各种数据类型)。
那么问题来了要在jia定义结构体多维数组怎么办呢?
可以定义一个变量,变量中封装几个变量(可以给变量赋值数组对象)
代码如下
//定义五个学生对象
var student = {
name:Array(5),//注意是逗号,也可以不指定数组长度(JavaScript可以不定义数组长度)
id:Array(5),
grade:Array(5),
}
这样就定义了结构体一维数组,访问数组元素的值与C语言不同,例如访问第二个学生的成绩就是student.grade[1];
如果要定义二维结构体数组就可以给每个数组元素再用数组对象赋值
代码如下
var i=0;
for(i=0;i<5;i++)
{
student.name[i]=Array(5);
student.id[i]=Array(5);
student.grade[i]=Array(5);
}
定义多维数组也是类似,只不过代码量会很大不建议使用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)