
javascript 多维数组定义、添加、删除和排序元素(js list列表)
有关 javascript 数组的定义在之前的文章中已经介绍过,文章名称为《js数组操作大全》,里面用实例介绍了 js一维数组的定义、初始化、添加、修改、删除元素、排序、数组截取与合并和转义符。本篇继续介绍 javascript 多维数组定义、初始化和应用。
在 javascript 中,一维数组与多维数组所使用的添加、删除和排序元素的方法相同,只不过多维数组把一个对象(一条记录)当作一个元素,方法说明请参考《js数组操作大全(带实例),含隐性定义、三种添加和删除元素的方法、排序、数组转字符、数组合并和多维数组》一文。另外,javascript 没有像 C# 一样的 list 列表,但可以用多维数组实现跟 list 一样的功能,文章将以具体实例说明,先从 js 多维数组定义开始。
一、javascript 多维数组定义
定义一个一维数组,再把它作为另一个一维数组的一个元素,这个把数组作为元素的数组就是多维数组,也就多维数组是多个一维数组的组合。以下是一个多维 javascript 数组定义实例:
var arrays = new Array();
arrays[0] = new Array("user1", "00001", "2014-5-15");
arrays[1] = new Array("user2", "00002", "2014-5-13");
arrays[2] = new Array("user3", "00003", "2014-5-10");
或者:
var arrays = [
["user1", "00001", "2020-5-15"],
["user2", "00002", "2020-5-13"],
["user3", "00003", "2020-5-10"]
];
动态定义:
var arrays = new Array();
for (var i = 0; i < 10; i++) {
arrays[i] = new Array("user" + i, "0000" + i, "2014-5-15");
}
二、javascript 多维数组添加元素
1、在数组后添加一条记录
arrays.push(["user4","00004", "2020-5-16"]);
输出第三行第一列对应的元素:
document.write(arrays[3][1]);//结果:00004
2、在数组前添加一条记录
arrays.unshift(["user4","00004", "2020-5-16"]);//在第一行前添加元素
输出所有元素:
for (var i = 0; i < arrays.length; i++) {
for (var j = 0; j < arrays[i].length; j++){
document.write(arrays[i][j]);
if (j < arrays[i].length - 1){
document.write(", ");
}
}
document.write("<br />");
}
结果:
user4, 00004, 2020-5-16
user1, 00001, 2020-5-15
user2, 00002, 2020-5-13
user3, 00003, 2020-5-10
3、在已有行后添加元素
arrays[1].push(["user4","00004", "2020-5-16"]);//在第一行后添加元素
输出所有元素为(输出方法见上文):
user1, 00001, 2020-5-15
user2, 00002, 2020-5-13, user4,00004,2020-5-16
user3, 00003, 2020-5-10
4、从指定位置起先删除2两条记录再插入一条记录
arrays.splice(1,2,["user4","00004", "2020-5-16"]);//从第二条记录起先删除2两条记录再插入一条记录
输出所有元素为(输出方法同上):
user1, 00001, 2020-5-15
user4, 00004, 2020-5-16
三、javascript 多维数组删除元素
1、删除指定行最后一个元素
arrays[1].pop();//删除第二行最后一个元素
输出结果为:
user1, 00001, 2020-5-15
user2, 00002
user3, 00003, 2020-5-10
2、删除数组最后一条记录
arrays.pop();
输出结果为:
user1, 00001, 2020-5-15
user2, 00002, 2020-5-1
3、删除指定行第一个元素
arrays[1].pop();//删除第二行第一个元素
输出结果为:
user1, 00001, 2020-5-15
00002, 2020-5-13
user3, 00003, 2020-5-10
4、删除数组第一条记录
arrays.shift();
输出结果为:
user2, 00002, 2020-5-13
user3, 00003, 2020-5-10
5、从指定位置起删除指定条记录
arrays.splice(1,2);//从第二条记录起删除2两条记录
输出结果为:
user1, 00001, 2020-5-15
四、javascript 多维数组排序
1、升序
arrays.sort();
输出结果为:
user1, 00001, 2020-5-15
user2, 00002, 2020-5-13
user3, 00003, 2020-5-10
2、降序
arrays.reverse();
输出结果为:
user3, 00003, 2020-5-10
user2, 00002, 2020-5-13
user1, 00001, 2020-5-15
五、javascript 多维数组的应用
网站开发中,经常要显示产品分类和地区,产品分类有“编号、名称和父类”等属性,地区也有“编号、名称和父编号”等性,每条记录有多个属性(多条记录就是 list 列表),用一维数组无法实现,需要用多维数组实现。下面以实现产品分类为例:
javascript 数组定义:
var lists = new Array();
for (var i = 0; i < 100; i++) {
lists[i] = new Array("分类编号" + i, "分类名称" + i, "父类编号");
}
读取数组元素:
取第三条记录的分类编号:lists[2][0];
取第三条记录的分类名称:lists[2][1];
取其它记录的字段属性,依次类推即可,注意数组的开始索引(下标)是0就行了。
C# 中的 list 列表可以是一个类(即字段属性可以是不同的类型),javascript 数组的元素需要是同一类型,遇到字段属性有不同的情况(如 int、string),可以把所有 int 定义为一个数组,所有 string 定义为另一个数组;或者数组元素就是一个自定义类对象。