- 向数组的最后一个位置添加元素
arr[0]=1;
arr[1]=2;
arr[arr.length]=3;//每次向数组的最后一个位置添加元素
- 使用字面量创建数组
var arr = [1,2,3,4,8];
//使用构造函数创建数组
var arr1 = new Array(10,20,30);
var arr2 = new Array(10);
//创建一个数组只有10 有一个元素
arr = [10];
- 数组内的元素可以是任何类型
//元素是对象
var obj = {name:孙悟空};
arr[arr.length] = obj;
arr = [{name:孙悟空},{name:猪八戒},{name:沙和尚}];
//元素是函数
arr = [function(){alert(1)},function(){alert(2)}];
//元素是数组,即二维数组
arr = [[1,2,3],[3,4,5],[4,5,6]];
-
数组的对象方法
-
数组的常用方法
1.push()方法//向数组的末尾添加一个或更多元素,并返回新的长度。 var arr = ["孙悟空","猪八戒","沙和尚"]; var result =arr.push("白骨精"); console.log(arr); console.log("result ="+result);//得出结果是5,说明push()函数返回的值是数组元素的个数。
2.pop()方法
var arr = ["孙悟空","猪八戒","沙和尚"]; var result = arr.pop(); console.log(arr); console.log("result ="+result);//结果是沙和尚,说明pop()函数返回的值是已经删除的值
3.unshift()方法
//向数组的前端添加一个或更多元素,并返回新的长度。 var arr = ["孙悟空","猪八戒","沙和尚"]; var result = arr.unshift("白骨精","牛魔王"); console.log(arr); console.log("result ="+result);//得出结果是6,说明unshift()函数返回的值是数组元素的个数。
4.shift()方法
//从前端删除数组元素的值,返回的值是已经删除的值 var arr = ["孙悟空","猪八戒","沙和尚"]; var result = arr.unshift(); console.log(arr); console.log("result ="+result);//结果是孙悟空
5.slice()函数,用于从我们的数组中提取指定元素
1.截取位置开始索引,包括开始索引 2.截取结束位置索引,不包括结束索引 3.第二个参数可以省略不写,此时会截取从开始到最后的所有元素 4.可以传递一个负值,传递负值,则从后往前计算
var arr = ["格格","哈哈","球球","香香","大大"]; var result = arr.splice(1,3); console.log(result);//结果是“哈哈,球球,香香” var result2 = arr.slice(1); console.log(result2);//输出结果是"哈哈,球球,香香,大大" var result3 = arr.slice(1,-1); console.log(result3);//输出结果是“哈哈,球球,香香”
6.splice()删除数组中的指定元素,会影响原数组,并将删除的元素作为返回值
1.第一个参数表示开始位置的索引 2.第二个参数表示删除的数量 3.第三个参数及以后的参数,这些元素将自动插入到开始索引的位置的前边
var arr = ["格格","哈哈","球球","香香","大大"]; var result = arr.splice(1,3); console.log(result);//结果是“哈哈,球球,香香” console.log(arr);//结果是“格格,大大” var arr = ["格格","哈哈","球球","香香","大大"]; var result1 = arr.splice(1,0,"小白","小黑"); console.log(result1);//结果是空数组 console.log(arr);//结果是“小白,小黑,哈哈,球球,香香,大大”
7.concat()函数 该函数不会对原数组造成影响,该方法可以连接字符串
var arr = ["孙悟空","猪八戒","沙和尚"]; var arr1 = [1,2,3] var result = arr.concat(arr1); console.log(arr);//输出"孙悟空,猪八戒,沙和尚" console.log(result);//输出"孙悟空,猪八戒,沙和尚",1,2,3
8.join() 函数
该方法可以将数组转化成字符串 该函数不会对原数组造成影响 join()中的可以指定一个字符串作为参数,这个字符串将会成为元素中的连接符,不传参数默认逗号。
<script type="text/javascript"> var arr = ["孙悟空","猪八戒","沙和尚"]; var result = arr.join("hello"); console.log(arr);//输出"孙悟空,猪八戒,沙和尚" console.log(result);//“孙悟空hello猪八戒hello沙和尚” </script>
9.sort()函数可以用来排序
会改变原数组内容 默认按照Unicode编码排序
var arr = ["d","e","b","a","c"]; var result = arr.sort(); console.log(arr);//输出"a,b,c,d,e" console.log(result);//输出"a,b,c,d,e"
**sort()函数可以用回调函数进行排序** **浏览器会根据回调函数的返回值来确定来决定元素的顺序** **如果返回一个大于0的值,则元素会交换位置** **如果返回一个小于0的值,则元素位置不变** **如果返回一个0,则认为两个元素相等,也不交换位置**
var arr = [5,6,8,4,11,7,9]; var result = arr.sort(function(a,b){//a是前面那个数,b是后面那个数 return a-b; }); console.log(arr);//输出"4,5,6,7,8,9,11" console.log(result);//输出"4,5,6,7,8,9,11"
10.reverse()函数是将数组的顺序颠倒过来
会改变原数组var arr = ["d","e","b","a","c"]; var result = arr.reverse(); console.log(arr);//输出"c,a,b,e,d" console.log(result);//输出c,a,b,e,d"
11.forEach()函数(不兼容IE8以下的浏览器,可以用于移动端)
forEach()方法需要一个函数作为参赛,类似这种函数,由我们创建,但是不由我们调用,称为回调函数,数组里面有几个 元素就会执行几次,每次执行时,浏览器都会遍历到的元素以实参的形式传递过来。
第一个参数:当前正在遍历的元素
第二个参数:当前正在遍历的元素的索引
第三个参数:就是正在遍历的数组var arr = ["格格","哈哈","球球","香香"]; arr.forEach(function(value,index,obj) {console.log(value)} );
12.数组去重
<script type="text/javascript"> var arr = [1,6,6,2,2,3,4,2,5,9,5,4,1,8,6,3]; //去除数组的重复数字 function unique(arr) { for (var i = 0; i<arr.length; i++){ for(var j = i+1;j < arr.length;j++){ if(arr[i]==arr[j]){ arr.splice(j,1); j--; } } } } var result = unique(arr); console.log(arr); </script>