数组的创建方式:
方式一:构造函数构建数组
var arr = new Array ( ); 如果传入的参数为一个数字,代表数组的长度,不包含内容
// 可以传入字符串和数字,用逗号隔开,作为数组中的内容。
方法二:字面量方法创建数组 (一般采用该方法)
var arr = [ ]; // 可以直接写入内容。用逗号隔开
数组的基本操作方法:
目录:
- push
- pop
- unshift
- shiift
- concat
- join
- splice
- slice
- indexOf
- lastIndexOf
push()方法
var len = arr.push( )
在数组尾部添加一个或多个新元素,并且返回数组的新长度。
原生JS重构 push方法
1 function push(arr) { 2 3 for (i = 1; i < arguments.length; i++) { 4 5 arr[arr.length] = arguments[i]; //数组的尾部添加传入进来的参数 6 7 } 8 9 return arr.length; //返回数组的长度 10 11 } 12 13 var num = push(arr, 7, 8, 9) 14 15 console.log(arr, i)
pop()方法
var itme = arr.pop( )
删除数组尾部的一个或者多个元素,并且返回被删除的这个元素
原生JS重构 pop方法
1 function pop(arr) { 2 3 var num = arr[arr.length - 1]; //保存数组最后一个元素 4 5 arr.length--; //删除最后一个元素 6 7 return num //返回删除的元素 8 9 } 10 11 pop(arr)
unshuift( ) 方法
//将一个或者多个新元素添加在数组的最前面,返回数组的新长度
var len = arr.unshift( )
原生JS重构 unshift方法
1 function unshift(arr) { 2 3 var len = arguments.length - 1; //定义需要添加元素的长度, 4 5 for (var i = arr.length - 1; i >= 0; i--) { //使数组整体向后移动len个单位 6 7 arr[i + len] = arr[i]; 8 9 // console.log(arr) 10 11 } 12 13 for (var j = 1; j < arguments.length; j++) { // 把传入的参数按顺序放入数组的前头 14 15 arr[j - 1] = arguments[j] 16 17 console.log(arr) 18 19 } 20 21 return arr.length //返回新数组的长度 22 23 } 24 25 unshift(arr, 9, 8, 7) 26 27
shift( ) 方法
// 删除数组的第一个元素,并且返回该元素。
var itme =arr.shift( )
原生JS重构 shift方法:
1 function shift(arr) { 2 3 var itme = arr[0]; //获取第一个元素 4 5 // console.log(itme) 6 7 for (i = 0; i < arr.length; i++) { //把数组整体向前移动一个长度 8 9 arr[i] = arr[i + 1] 10 11 console.log(arr) 12 13 } 14 15 return itme //返回数组的第一个元素 16 17 } 18 19 console.log(shift(arr))
concat ()方法
var arr1 = arr.concat ( 10,11,12)
var arr2 =arr.concat ( arr1 )
//给原数组添加新元素或连接多个数组,复制给一个新数组
原生JS重构 concat方法:
1 function concat(arr) { 2 3 var array = []; //定义一个空数组 用来复制新数组 4 5 var num = 0; //新数组的下标 6 7 for (var i = 0; i < arr.length; i++, num++) { //把第一个数组复制到新数组中 8 9 array[num] = arr[i] 10 11 } 12 13 for (var j = 1; j < arguments.length; j++, num++) { //把参数复制到新数组中 14 15 if (arguments[j].constructor === Array) { //判断参数是否是数组类型 16 17 for (var m = 0; m < arguments[j].length; m++, num++) { //遍历参数数组,添加到新数组中 18 19 array[num] = arguments[j][m] 20 21 } 22 23 num-- // 由于上面两次循环 新数组下标添加了2次, 所以在这减少一次 24 25 } else { //参数不是数组类型,把参数添加到新数组中 26 27 array[num] = arguments[j] 28 29 } 30 31 } 32 33 return array //返回新数组 34 35 }
join ()方法
var str = arr.join( )
join() 方法用于把数组中的所有元素放入一个字符串。
元素是通过指定的分隔符进行分隔的。若没有填入参数,默认用逗号隔开
splice ()方法
arr.splice (从什么位置开始,删除多少个元素,添加的元素…… )
//给数组中添加,删除,替换一个或者多个元素,返回被删除元素组成的数组
var arr1 =arr.splice( ) //创建一个空数组arr1
var arr1 =arr.splice( 0 ) 删除arr所有元素 ,将所有元素传递给arr1、
var arr1 =arr.splice( -1)传入的参数是负数的时候,表示倒数第几位开始。
var arr1 =arr.splice( 2,0,12,14)表示从第二位开始,不删除元素,插入12和14
//(正数是向后插入元素, 负数是向前插入元素)
slice()方法
功能:截取指定位置的数组,并且返回截取的数组,不会改变原数组
参数:slice(startIndex, endIndex)
注意:可从已有的数组中返回选定的元素。该方法接收两个参数slice(start,end),省略表示到最后一位;
start和end都可以为负数,负数时表示从最后一位开始算起,如-1表示最后一位。
IndexOf()方法
功能:根据指定的数据,从前往后,查询在数组中出现的位置,如果不存在指定的数据,返回-1,找到了指定的数据返回该数据的索引
参数:indexOf(value, start);value为要查询的数据;start为可选,表示开始查询的位置,当start为负数时,从数组的尾部向前数;如果查询不到value的存在,则方法返回-1
注意:如果找到该数据,立即返回该数据的索引,不再往后继续查找
lastIndexOf( )方法
功能:根据指定的数据,从后往前,查询在数组中出现的位置,如果不存在指定的数据,返回-1,找到了指定的数据返回该数据的索引
参数:indexOf(value, start);value为要查询的数据;start为可选,表示开始查询的位置,当start为负数时,从数组的尾部向前数;如果查询不到value的存在,则方法返回-1