数组操作很常考,也很常用,用好了代码还是很漂亮的。
在控制台打印数组的属性什么的实在太多了,就捡点常用的背背吧。(参考W3C)
1、数组的创建
//字面量方法
var ary1=[];//建个空数组
var ary2=[1,2,3];//建个有值的数组
//构造函数的方法
var ary3=new Array()//建个空数组
var ary4=new Array(1,2,3)//建个有值的数组
var ary5=new Array(3) //建个预知长度的数组 元素都为 undefined
2、Array 对象属性
//constructor 返回对创建此对象的数组函数的引用。
//length 设置或返回数组中元素的数目。(比较常用)
//prototype 使您有能力向对象添加属性和方法。
3、数组的操作方法
按返回值分成两类吧,个人比较容易记混的。一类是原数组被修改,一类是返回修改后的副本,保留原数组。
原数组被修改的:
//pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。
//用法:arrayObject.pop()
var arr = [1,2,3]
console.log(arr)//[1,2,3]
console.log(arr.pop())//3
console.log(arr)//[1,2]
//push() 直接操作原数组,向数组的末尾添加一个或更多元素,并返回新的长度。
//reverse() 颠倒数组中元素的顺序。返回翻转后的数组
//shift() 删除并返回数组的第一个元素
//sort() 对数组的元素进行排序
//用法: arrayObject.sort(sortby) 在原数组上进行排序,返回排序后的新数组
//splice() 删除元素,并向数组添加新元素。
//用法: arrayObject.splice(index,howmany,item1,.....,itemX) 删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。
//如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。
//unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
//用法:arrayObject.unshift(newelement1,newelement2,....,newelementX) 将把它的参数插入 arrayObject 的头部,并将已经存在的元素顺次地移到较高的下标处,以便留出空间。该方法的第一个参数将成为数组的新元素 0,如果还有第二个参数,它将成为新的元素 1,以此类推。
不修改原数组的:
//concat() 连接两个或更多的数组,返回被连接数组的一个副本。。
//用法:arrayObject.concat(arrayX,arrayX,......,arrayX)//参数必须,可以是任意数量的具体值或者数组
var a = [1,2,3];
var b = [4,5];
var c = [6];
console.log(a.concat(7,8))// [1,2,3,7,8]
console.log(a.concat(b))// [1,2,3,4,5]
console.log(a.concat(b,c))// [1,2,3,4,5,6]
//join() 把数组的所有元素放入一个字符串。返回被分隔符链接的一个字符串。
//用法:arrayObject.join(separator) //参数是个连接符,默认逗
//slice() 从某个已有的数组返回选定的元素
//用法 : arrayObject.slice(start,end) 返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。
//toSource() 返回该对象的源代码。
//toString() 把数组转换为字符串,并返回结果。
//toLocaleString() 把数组转换为本地数组,并返回结果。
//valueOf() 返回数组对象的原始值