JavaScript数组方法总结

一,新建数组

1.采用字面量方式创建数组

var arr1 = []; //创建空数组
var arr2 = [number]; //创建一个仅有一项且内容为number的数组
var arr3 = ["01" , "02" , ...];//创建多个值的数组

2.采用构造函数创建数组

var arr1 = new Array();//创建空数组
var arr2 = new Array(number);//创建一个长度为number的数组
var arr3 = new Array("01" , "02" , ...);//创建多个值的数组

注:任意两个数组都不相同

二,数组方法的总结

1.ES5前的数组方法

方法名功能
push()向数组的末尾添加一个或更多元素,并返回新的长度。
join()把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
pop()删除并返回数组的最后一个元素
shift()删除并返回数组的第一个元素
unshift()删除并返回数组的最后一个元素
sort()对数组的元素进行排序
reverse()颠倒数组中元素的顺序。
concat()连接两个或更多的数组,并返回结果。
slice()从某个已有的数组返回选定的元素
splice()删除元素,并向数组添加新元素

2.ES5之后新增数组方法

方法名功能
indexOf()根据传入的数据,查找在数组中的位置(从起点到终点)
lastindexOf()根据传入的数据,查找在数组中的位置(从终点到起点)
forEach()遍历数组,参数为回调函数
map()遍历数组,参数为回调函数,返回数组每项每回调用的结果
filter()过滤值,参数为回调函数,并返回到一个新数组中
some()遍历数组中是否有符合条件的值,只要有符合,那么就是true,同时停止遍历
every()遍历数组中是否有符合条件的值,必须全符合,才是true,如果有一项不符合,则停止遍历
reduce()归并,可以将每次回调函数的返回值,传入下次回调函数的执行,作为下一次回调函数的第一个参数存在。
reduceRight()反向归并,可以将每次回调函数的返回值,传入下次回调函数的执行,作为下一次回调函数的第一个参数存在。

三,数组方法的使用

(一)ES5之前方法的使用

1.push()

  • 参数值:任意个,任意值
  • 返回值:数组被增加之后的长度
  • 功能:在数组的尾部增加数据,增加的数据是push的参数
  • 是否会修改原数组:会修改原数组
var arr = [];
var a = arr.push(3,4,5);//向arr数组中插入数据
console.log(a);//返回值为3

2.join()

  • 参数值:分隔符
  • 返回值:转换以后的字符串- 功能:把数组的所有元素放入一个字符串。元素通过指定的分隔符(即参数)进行分隔。
  • 是否会修改原数组:不会
var arr = [3,4,5];
var a = arr.join("-");//将arr数组转为字符
console.log(a);//返回值为3-4-5

3.pop()

  • 参数值:无参数
  • 返回值:删除的数据
  • 功能:删除数组中的最后一位数据
  • 是否会修改原数组:会修改原数组
var arr = [3,4,5];
var a = arr.pop();//删除arr的数据
console.log(a);//返回值为5

4.shift()

  • 参数值:无参数
  • 返回值:删除的数据
  • 功能:删除数组中的第一位数据
  • 是否会修改原数组:会修改原数组
var arr = [3,4,5];
var a = arr.shift();//删除arr的数据
console.log(a);//返回值为3

5.unshift()

  • 参数值:要增加的数据
  • 返回值:添加的数据
  • 功能:在数组的头部添加数据
  • 是否会修改原数组:会修改原数组
var arr = [3,4,5];
var a = arr.unshift(5);//向arr添加数据
console.log(a);//返回值为5

6.sort()

  • 参数值:回调函数
  • 返回值:排序好的数组
  • 功能:排序数组
  • 是否会修改原数组:会修改原数组
var arr = [3,4,5];
var res = arr.sort(function(a,b){
  return a-b;//升序排列,反之则为降序排列
})
console.log(res);//结果为3,4,5    反之为5,4,3

7.reserve()

  • 参数值:无参数
  • 返回值:颠倒后的数组
  • 功能:颠倒数组的顺序
  • 是否会修改原数组:会修改原数组
var arr = [3,4,5];
var res = arr.reserve();
console.log(res);//结果为5,4,3

8.concat()

  • 参数值:元素或者数组
  • 返回值:拼接后的数组
  • 功能:拼接数组
  • 是否会修改原数组:不会
var arr = [3,4,5];
var res = arr.concat([1,2]);
console.log(res);//结果为3,4,5,1,2

9.slice()

  • 参数值:第一个参数为从该指定位置开始截取,第二个值为结束的指定位置
  • 返回值:截取到的数组
  • 功能:截取指定范围内的数组
  • 是否会修改原数组:不会
var arr = [3,4,5];
var res = arr.slice(1);
console.log(res);//结果为4,5
var res2 = arr.slice(12);
console.log(res2);//结果为4

10.splice()

  • 参数值:
    一个参数时:从指定索引处,删除数据到结束
    两个参数时:从指定索引处,删除指定长度数据
    三(多)个参数时:从指定索引处,删除指定长度数据,并添加其余参数进入数组
  • 返回值:被删除的数据所组成的数组
  • 功能:根据参数数量的不同,其功能有所不同
  • 是否会修改原数组:会改变原数组
var arr = [3,4,5];
var res = arr.splice(1);
console.log(res);//结果为4,5
var res2 = arr.splice(12);
console.log(res2);//结果为4

(二)ES5新增方法的使用

1.indexOf()

  • 参数值:
    一个参数时:查询数组中是否存在某个数据
    两个参数时:从指定索引处开始查询数组中是否存在某个数据
  • 返回值:若数组中含有该数据,返回该数据的索引,不存在则返回-1
  • 功能:查询指定数据的下标并且返回
  • 是否会修改原数组:不会改变原数组
var arr=[1,2,5,4,7,2];
var res=arr.indexOf(2,2);//返回值是5
console.log(res);
var res1=arr.indexOf(6);//返回-1
console.log(res1);

2.lastindexOf()

  • 参数值:
    一个参数时:查询数组中是否存在某个数据
    两个参数时:从指定索引处开始查询数组中是否存在某个数据
  • 返回值:若数组中含有该数据,返回该数据的索引,不存在则返回-1
  • 功能:从后向前查询指定数据的下标并且返回
  • 是否会修改原数组:不会改变原数组
var arr=[1,2,5,4,7,2];
var res=arr.indexOf(2);//返回值是5
console.log(res);
var res1=arr.indexOf(6);//返回-1
console.log(res1);

3.forEach()

  • 参数值:回调函数
  • 返回值:undefined
  • 功能:遍历数组
  • 是否会修改原数组:不会改变原数组
var arr=[1,2,5,4,7,2];
arr.forEach(function(value,xb,self){
  console.log(value+"-"+xb+"-"+ self);//value代表数组中的值,xb代表数组索引,self代表数组本身
})

4.map()

  • 参数值:回调函数
  • 返回值:数组,数组内是每个回调函数的返回值
  • 功能:遍历数组
  • 是否会修改原数组:不会改变原数组
    注:map方法可以修改值,并返回到新数组中
var arr=[1,2,5,4,7,2];
arr.map(function(value,xb,self){
  return value * 1.3;//将数组内每个元素增加百分之三十,并返回
})

5.filter()

  • 参数值:回调函数
  • 返回值:
    若回调函数中没有返回值,则返回一个空数组
    若回调函数中有返回值,且当回调函数的返回值为true时,将本次数据返回给filter;若回调函数为false时,返回空数组;最后filter将所有返回的数组组成一个新数组返回
  • 功能:遍历数组,过滤符合条件的值
  • 是否会修改原数组:不会改变原数组
var arr=[1,2,5,4,7,2];
arr.forEach(function(value,xb,self){
  return value > 3;//返回值为5,4,7
})

6.some()

  • 参数值:回调函数
  • 返回值:Boolean值
    若回调函数中没有返回值,则返回false
    若回调函数中有返回值,且数组中存在符合条件的值,则返回true并立即停止遍历;若不存在符合条件的值,则返回false
  • 功能:遍历数组
  • 是否会修改原数组:不会改变原数组
var arr=[1,2,5,4,7,2];
arr.forEach(function(value,xb,self){
  return value > 3;//返回值为5,4,7
})

7.every()

  • 参数值:回调函数
  • 返回值:Boolean值
    若回调函数中没有返回值,则返回false
    若回调函数中有返回值,且数组中全部数据皆符合条件,则返回true;若存在不符合条件的值,则返回false并立即停止遍历
  • 功能:遍历数组
  • 是否会修改原数组:不会改变原数组
var arr=[1,2,5,4,7,2];
arr.forEach(function(value,xb,self){
  return value > 3;//返回值为5,4,7
})

8.reduce()

  • 参数值:
    第一个参数是回调函数
    第二个参数是若存在,则作为值保存在prev中
  • 返回值:
    若回调函数中没有返回值,则返回undefined
    若回调函数中有返回值,则每次将返回值返回到prev中
  • 功能:遍历,迭代数组
  • 是否会修改原数组:不会改变原数组
var arr=[1,2,5,4,7,3,2];
var res=arr.reduce(function(prev,value,xb,self){
  return prev+value;//返回值为17
  //return prev;//返回数组第一个数据的值
})
var res2=arr.reduce(function(prev,value,xb,self){
  return prev+value;//返回值为18,因为有第二个参数存在
  //return prev; // 返回第二个参数的值
},1)

8.reduceRight()

  • 参数值:
    第一个参数是回调函数
    第二个参数是若存在,则作为值保存在prev中
  • 返回值:
    若回调函数中没有返回值,则返回undefined
    若回调函数中有返回值,则每次将返回值返回到prev中
  • 功能:从右到左遍历,迭代数组
  • 是否会修改原数组:不会改变原数组
var arr=[1,2,5,4,7,3,2];
var res=arr.reduceRight(function(prev,value,xb,self){
  return prev+value;//返回值为17
  //return prev;//返回数组最后一个数据的值
})
var res2=arr.reduceRight(function(prev,value,xb,self){
  return prev+value;//返回值为18,因为有第二个参数存在
  //return prev; // 返回第二个参数的值
},1)

仅供参考,如有问题,敬请留言,私聊也可以。只要我在,我就回复。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值