数组
一、相关概念
1、数组是值的有序集合。
2、每个值叫做一个元素
3、每个元素在数组中有一个位置,以数字表示。称为索引(下标)。
二、特点
1、数组的元素可以是任何类型
2、数组索引从0开始,最大为2^32-2 4294967294个元素
三、创建数组
1、使用数组直接量[]
var arr = [1,2,3,];
2、使用构造函数
var arr = new Array(10);10个元素
var arr = new Array('a','b','c');
四、数组的长度
arr.length;
length属性只计算非负整数的索引
五、数组元素的访问和修改
使用[]
数字类型的字符串 也可以访问数组元素
小实例:尝试将数组中的内容放入新的数组中
六、稀疏数组(稀疏数组就是不连续索引的数组)
1、var arr = new Array(3); -- 是稀疏数组
2、var arr = [,,]; -- 是稀疏数组
3、var arr = [1,2];arr[10]=100; -- 是稀疏数组
4、使用delete删除一个元素 得到稀疏数组
小实例:尝试将稀疏数组变成不稀疏
七、数组元素的添加
1、为新索引赋值 arr[4]=2;
2、利用数组长度在数组尾部插入新元素 arr[arr.length]=5;
3、push() 在尾部加入新元素 arr.push(‘abc’);
4、unshift()在前面加入一个新元素 arr.unshift(‘abc’);
八、数组的删除
1、删除数组后面的一个元素 delete()不推荐--产生稀疏数组
2、pop() 删除数组最后一个元素 arr.pop();
3、shift() 删除数组第一个元素 arr.shift();
练习题:自定义一个函数验证元素是否在数组中
九、判断是否数组
typeof []; 无法进行判断
ESMA5定义新的方法用来判断是否数组: Array.isArray([]);
十、搜索数组是否具有的元素
arr.indexOf();
如果存在返回元素位置
如果不存在返回-1
十一、数组的遍历
1、使用for循环遍历 for(var i = 0; i < arr.length;i++){ console.log(arr[i]); }
2、使用for/in循环 for(var i in arr){ console.log(arr[i]); }
3、注意:遍历稀疏数组 和 特殊下标数组时的区别
4、使用forEach(); 传入匿名函数,低版本IE不支持
十二、数组的方法
1、join()把数组的元素拼接成字符串 var message = arr.join(‘,’);
2、concat() 合并多个数组
var message = arr.concat([12,43],[4,35,3]);
var message = arr.concat(1,2,3);
var message = arr.concat(1,2,[4,,5,[6,,7]]);
3、slice() 截取数组中的一部分(不破坏原数组),返回新的数组
var arr = list.slice(2); 取出从下标2到后面的所有元素
var arr = list.slice(2,4); 取出从下标2到下标4(不含4)的元素>
4、splice() 删除、替换、添加、 破坏原数组 返回删除的内容
var new_arr = list.splice(2); 下标2以后的元素
var new_arr = list.splice(2,2); 下标2以后的两个元素
在指定位置添加新的元素
var arr = [3,454,435,343];
arr.splice(2,0,’abc’);(在435的位置前添加一个abc)
替换指定位置的元素
var arr=[1,2,3,4];arr.splice(2,1,’abc’);(将3替换成abc)
实例:使用 splice()方法处理稀疏数组
5、reverse() 数组反转 改变原数组
6、sort(); 数组排序,必须使用排序函数 list=[1,334,32,324]; list.sort(function(a,b){return a-b;});
7、toString() 把数组转换为字符串
8、toLocaleString()把数组转换为本地字符串(不常用)
练习:
自定义求数组最大值的函数
自定义求数组最小值的函数
冒泡排序
网友评论