代码改变世界

面试很痛苦,备点前端面试题(二)——js数组及其操作

2018-05-14 03:23  麻雀!  阅读(4067)  评论(0编辑  收藏  举报

数组操作很常考,也很常用,用好了代码还是很漂亮的。

在控制台打印数组的属性什么的实在太多了,就捡点常用的背背吧。(参考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() 返回数组对象的原始值