1、数组常用方法之 push

push 是用来在数组的末尾追加一个元素

返回值:追加数组的长度

注意:会改变原数组

 
var arr = [1, 2, 3]​// 使用 push 方法追加一个元素在末尾arr.push(4)​console.log(arr) // [1, 2, 3, 4]

2、数组常用方法之 pop

pop` 是用来删除数组末尾的一个元素

返回值:被删除的数据

注意:会改变原数组

var arr = [1, 2, 3]​// 使用 pop 方法删除末尾的一个元素arr.pop()​console.log(arr) // [1, 2]

3、数组常用方法之 unshift

unshift 是在数组的最前面添加一个元素

返回值:添加数据后,数组的长度

注意:会改变原数组

 var arr = [1, 2, 3]​// 使用 unshift 方法向数组的最前面添加一个元素arr.unshift(4)​console.log(arr) // [4, 1, 2, 3]

4、数组常用方法之 shift

shift 是删除数组最前面的一个元素

返回值:删除的数据

注意:会改变原数组

 var arr = [1, 2, 3]​// 使用 shift 方法删除数组最前面的一个元素arr.shift()​console.log(arr) // [2, 3]

5、数组常用方法之 splice

splice 是截取数组中的某些内容,按照数组的索引来截取

注意:会改变原数组

语法: splice(从哪一个索引位置开始,截取多少个,替换的新元素) (第三个参数可以不写)

 var arr = [1, 2, 3, 4, 5]​// 使用 splice 方法截取数组arr.splice(1, 2)console.log(arr) // [1, 4, 5]console.log(arr) // [1, 0, 5] 中间0不替换

arr.splice(1, 2) 表示从索引 1 开始截取 2 个内容

第三个参数没有写,就是没有新内容替换掉截取位置

 var arr = [1, 2, 3, 4, 5]​// 使用 splice 方法截取数组arr.splice(1, 2, '我是新内容')​console.log(arr) // [1, '我是新内容', 4, 5]

arr.splice(1, 2, '我是新内容')` 表示从索引 1 开始截取 2 个内容

然后用第三个参数把截取完空出来的位置填充

6、数组常用方法slice()截取数组

语法:数组.slie(起始索引,结束索引)

特点1:包前不包后

特点2:可以写负整数,就是倒数第几个,等价于 length+负整数

起始索引不写默认为0

结束索引不写默认为length

返回值:一个新数组 ;里面的数组就是截取的数据内容

注意:不会改变原数组

  // slice()// var arr = ['a','b','c','d','e'];// var res = arr.slice(1);// var res = arr.slice(1,3);// var res = arr.slice(0,-1);// console.log(arr);// console.log(res);

7、数组常用方法之 reverse

reverse` 是用来反转数组使用的

返回值:反转后的数组

注意:会改变原数组

 var arr = [1, 2, 3]​// 使用 reverse 方法来反转数组arr.reverse()​console.log(arr) // [3, 2, 1]

8、数组常用方法之 sort

sort` 是用来给数组排序的

注意:会改变原数组

数组.sort() ASCII一位一位比较

数组.sort(function(a,b){return a-b}) 升序

数组.sort(function(a,b){return b-a}) 降序

返回值:排序后的数组

 var arr = [2, 3, 1]​// 使用 sort 方法给数组排序arr.sort()​console.log(arr) // [1, 2, 3]

这个只是一个基本的简单用法

9、数组常用方法之 concat

concat` 是把多个数组进行拼接

和之前的方法有一些不一样的地方,就是 concat 不会改变原始数组,而是返回一个新的数组

 var arr = [1, 2, 3]​// 使用 concat 方法拼接数组var newArr = arr.concat([4, 5, 6])​console.log(arr) // [1, 2, 3]console.log(newArr) // [1, 2, 3, 4, 5, 6]

注意: concat 方法不会改变原始数组

10、数组常用方法 filter

语法:数组.filter(function(item,index,arr){})

返回值:一个新的数组

- 原始数组中满足条件的数据

- 在回调函数中 以return 的新形式书写过滤条件

 //  filter()// var arr = [1, 2, 3, 4, 5];// // 获取arr中大于3的数据 形成新数组// var res = arr.filter(function (item) {//   return item > 2;// })// console.log(res);/* 封装方法+ 需求: 根据我的条件原始数组进行过滤,把原始数组中满足条件的数据拿出组成一个新的数组+ 荔枝:- 原始数组:[10,20,30,40]- 条件 > 20- [30,40]*/​// 1. 准备方法Array.prototype.myFilter = function(cb){// 准备一个新数组var ary = [];// 根据 回调函数的条件, 向 新数组中 添加成员for(var i = 0;i<this.length;i++){// 调用cb var r = cb(this[i],i,this);// ary.push(this中满足条件的数据)r&&ary.push(this[i]);}// 将新数组返回return ary;​}​// 将来和私用var arr = [10,20,30,40];var res = arr.myFilter(function(item,index,arr){// 过滤条件return item>20;})console.log(res);

11、数组常用方法之 join 连接数组

语法:数组.join(连接赋符号)

如果连接符号不写,默认使用 ','

作用:把数组中的每一项数据,使用连接符号拼接为一个字符串

返回值:一个连接好的字符串

注意:不会改变原数组

 var arr = [1, 2, 3]​// 使用 join 链接数组var str = arr.join('-')​console.log(arr) // [1, 2, 3]console.log(str) // 1-2-3

12、数组常用方法 froEach()

专门用于遍历数组

语法:

 数组.forEach(function(item,index,arr) { //这个回调函数,数组有多少数据,就会执行多少次item 表示数组的每一个项index 表示数组每一个项的索引arr 表示原数组}) 

返回值:没有,undefined

意义:用来遍历数组

数组调用 arr.myForEach() // 报错 arr.myForEach is not a function

  1. 能不能像forEach一样,数组.myForEach 调用

需要让我们封装的方法能被数组直接调动

需要把这个方法赋值给一个 '空间'内

把我们自己写的 myForEach 放到 '数组方法空间' 中

'数组方法空间' 是一个对象数据类型

'数组方法空间' 被我们称之为 Array.prototype

将我们写的myForEach函数 添加到 '数组方法空间' 这个对象中

Array.prototype.myForEach = myForEach;

此时数组就可以直接调用myForEach方法 : arr.myForEach()

 // 在myForEach中也遍历数组Array.prototype.myForEach = myForEach;// 此时数组就可以直接调用myForEach方法// arr.myForEach(function b(item,index,arr){//   console.log(item,index,arr);// })// 求arr数组中的数据和var sum = 0;arr.myForEach(function(item){sum += item;})console.log(sum);

13、数组常用方法---map

语法: 数组.map(function(item,index,arr){})

作用:对原数组进行映射

返回值:就是一个和原数组长度一样的新数组,

并且新数组中的数据是被映射操作过的内容

注意:不改变原数组

 // map()// var arr = [10,20,30,40];// // arr中的数据加百分之30 // var res = arr.map(function(item){//   return item*1.3// })// console.log('原数组',arr);// console.log('映射操作后的数组',res);​/* 封装一个和数组的map一样功能的方法---myMap+ 需求:- 根据原数组的长度  返回 一个新的数组- 在回调函数中可以对原数组中的每一个数据进行操作(我需要的操作)- 新数组中得到的数据,就是操作后的数据*/// 1. 准备一个方法,这个方法可以直接被数组调用Array.prototype.myMap = myMapfunction myMap(cb){// 在这个函数中,需要找到调用这个方法的那个数组//  因为需要遍历调用此方法的数组// 数组方法函数内的关键字 this 指向 调用这个方法的数组// console.log(this);// 准备一个新数组var ary = [];// 遍历数组 根据原始数组(this)的长度 和cb 的操作//   向ary中添加数据for (var i = 0; i < this.length; i++) {// 使用 myMap方法的人,会把他想要操作数据的方法写在 b 回调函数中// 需要调用cb,并且把每一项数据 给b函数// res接受的就是b函数内中的返回值//  因为b函数内返回的是 每一项 +1 的结果// res 得到的就是每一个数据 +1 的结果var res = cb(this[i],i,this);ary.push(res);           }// 把操作号的数组返回return ary;}​// 2. 将来使用的时候var arr1 = [1,2,3,4];var arr2 = [10,20,30,40];var arr3 = [100,200,300,400];// 数组直接调用 我们自己写的myMap方法var resArr = arr3.myMap(function b(item,index,arr){// 一些操作,假设操作数据 +1// 以返回值的形式 把结果给出去return item+1;})console.log(resArr);

14、数组常用方法 every

判断数组中是不是所有项都满足条件

如果所有项都满足条件,那么返回 true

只要有任意一项不满足条件,就返回false

条件写在回调函数的 return 后

 // // every// // 判断数组中的数据是否都大于1// var r1 = arr.every(function(item){//   return item > 0;// })// console.log(r1);// 封装我们自己的every方法---myEvery// 1. 准备方法Array.prototype.myEvery = function (cb) {//  假设变量,假设所有项都满足条件var flag = true;// 通过遍历数组 来验证假设for (var i = 0; i < this.length; i++) {var r = cb(this[i], i, this)​//如果在循环中,r 为 false 了,说明当前这一个项不满足条件// 推翻假设if (!r) {flag = false;break;}}// 返回flagreturn flag;}

15、数组常用方法some

判断数组中是不是有每一个项满足条件

只要数组中任意一项满足条件,就返回 true

只有所有项都不满足条件的时候,才返回false

条件写在回调函数的 return 后

 // some// 判断数组中的数据是否有大于4的// var r2 = arr.some(function(item){//   return item > 4;// })// console.log(r2);// 封装我们自己的some方法---mySome// 准备一个mySome方法Array.prototype.mySome = function (cb) {//  假设变量,假设没有数据满足条件var flag = false;for (var i = 0; i < this.length; i++) {var r = cb(this[i], i, this);if (r) {flag = true;break;}}return flag;}// 将来使用的时候var arr = [10, 20, 30, 40, 50];// // 判断是否都大于 20// var r1 = arr.myEvery(function (item) {//   return item > 5;// })// console.log(r1);​// 判断是否有大于60的数var r1 = arr.mySome(function (item) {return item > 60;})console.log(r1);

16、数组常用方法flat()

语法:数组.flat(数字)

如果不传参数,默认拍平一层

传递参数是几,就拍平几层

不管多少维度都可以直接拍平,传递Infinity

作用:拍平一个数组(把多维数组转为一维)数组常用方法

   // flat()// var arr = [1,[2,[3,[4,[5]]]]];// console.log(arr);// // var resArr = arr.flat()// // var resArr = arr.flat(3)// var resArr = arr.flat(Infinity)// console.log(resArr);

17、数组常用方法 find()

- 语法:数组.find(function(item,index,arr){})

+ 返回值:数组中满足条件的第一个数据

- 回调函数中 以 return 的形式书写

   // find()// var arr = [1, 2, 3, 4];// var res = arr.find(function (item) {//   return item > 1;// })// console.log(res);

18、数组常用方法 findIndex()

- 语法:数组.findIndex(function(item,index,arr){})

+ 返回值:数组中满足条件的第一个数据的索引

- 以 return 的形式书写

   // findIndex()// var arr = ['a', 'b', 'c', 'd'];// var arr = [1, 2, 3, 4];// var res = arr.findIndex(function (item) {//   // return item === 'c';//   return item > 2;// })// console.log(res);

19、 数组常用方法 includes()

- 语法:数组.includes(数据)

+ 返回值:布尔值

- 如果数组中有该数据,那么就是true

- 如果数组中没有该数据,那么就是false

   //includes()// var arr = ['a', 'b', 'c', 'd'];// // var res = arr.includes('a');// var res = arr.includes('z');// console.log(res);

20、数组常用方法 fill()

- 语法:数组.fill(要填充的数据,开始索引,结束索引)

+ 开始索引不写 默认为0

+ 结束索引不写 默认为数组数据的最后一个索引

+ 特点:索引 包前不包后(包含开始索引,不包含结束索引)

- 作用:替换,按照索引位置替换数组中的指定索引的数据

- 注意:直接改变原数组

- 注意:只能替换现有的数据,不能新增

   // fill()// var arr = [10,20,30,40,50];// arr.fill('数据1');// arr.fill('数据1',1);// arr.fill('数据1',1,3);// arr.fill('数据1',1,6);// console.log(arr);

21、数组常用方法 reduce()

- 语法:数组.reduce(function(prev,item,index,arr){},init)

- init 如果不写,默认 使用数组的第一个数据

- 作用:叠加

— 返回值:就是叠加后的结果

   // reduce()// var arr = [10, 20, 30, 40, 50];// var res = arr.reduce(function (prev, item) {//   console.log(prev, item)//   return prev+item;// },0)// console.log(res);/* 你设置 init 位置的参数循环第一次, prev 就是init 位置的数据,item就是数组的第一项循环第二次及之后, prev 就是上一次 return 的内容,item就是数组当前的第几项​你没有设置 init 位置的参数循环第一次, prev 就是数组的第一项[0]数据,item就是数组的第二项循环第二次及之后, prev 就是上一次 return 的内容,item就是当前数组的后一项*/

22、数组常用方法 concat() 拼接数组

语法:数组.concat(数组2,数据,数组3...)

作用:把所有参数中的数组或数据追加到原始数组的后面,如果参数是数组,那么就拆开追加

返回值:拼接好的新数组

注意:不会改变原数组

   //concat()// var arr = [1,2,3];// var res = arr.concat('a','b','c',['d','e']);// console.log(arr);// console.log(res);

23、数组常用方法indexOf()

语法:数组.indexOf(要查找的数据)

数组.indexOf(要查找的数据,开始索引)

返回值:

从前向后查找数组中的数据,找到的第一个满足要求的数据

返回第一个满足要求的数据的索引

如果有这个数据 则返回 数据 的索引 ; 如果没有这个数据 则-1

   //indexOf()// var arr = ['a', 'b', 'c', 'b', 'e'];// var res = arr.indexOf('b');// var res = arr.indexOf('b',2);// var res = arr.indexOf('z');// console.log(res);

24、数组常用方法 lastIndexOf()

语法: 数组.lastIndexOf(要查找的数据)

数组.lastIndexOf(要查找的数据,开始索引)

返回值:

- 从后向前查找数组中的数据,找到的第一个满足要求的数据

- 返回第一个满足要求的数据的索引

- 如果有这个数据 则返回 数据 的索引

- 如果没有这个数据 则-1

   //lastIndexOf()// var arr = ['a', 'b', 'c', 'b', 'e'];// var res = arr.lastIndexOf('b');// var res = arr.lastIndexOf('b', 2);// var res = arr.lastIndexOf('z');// console.log(res);

数组的常用方法-(部分带有重构函数)相关推荐

  1. 数组的常用方法(函数)

    一.数组的常用方法: 内置法:直接使用,只需按要求传递对应的参数 1.join(连接字符):作用是将数组中的元素通过给定的连接字符连成一个字符串 2.push(值/变量/对象):从数组的末尾向数组添加 ...

  2. 七、ref引用与数组的常用方法

    一.ref 引用 1.1.什么是 ref 引用 ref 用来辅助开发者在不依赖于jQuery的情况下,获取 DOM 元素或组件的引用. 每个vue的组件实例上,都包含一个$refs对象,里面存储着对应 ...

  3. python使用numpy中的flatten函数将2D numpy数组拉平为1Dnumpy数组、使用np.linalg.matrix_rank函数计算2D numpy数组的秩(rank)

    python使用numpy中的flatten函数将2D numpy数组拉平为1Dnumpy数组.使用np.linalg.matrix_rank函数计算2D numpy数组的秩(rank) 目录

  4. python使用numpy中的np.mean函数计算数组的均值、np.var函数计算数据的方差、np.std函数计算数组的标准差

    python使用numpy中的np.mean函数计算数组的均值.np.var函数计算数据的方差.np.std函数计算数组的标准差 目录

  5. PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题

    求两个数组的交集问题可以使用array_intersect(),array_inersect_assoc,array_intersect_key来实现,其中array_intersect()函数是求两 ...

  6. 使用C语言将一个数组首尾互换后输出,函数实现体会地址传递

    将一个数组首尾互换后输出,函数实现体会地址传递 小伙伴多多支持,有意见进行评论!(づ ̄3 ̄)づ╭❤- 运行结果: #include<stdio.h> #define N 6 void co ...

  7. C语言试题五十二之学生的记录由学号和成绩组称个,n名大学生得数据已在主函数中放入结构体数组a中,请编写函数fun,它的功能时:按分数的高低排列学生的记录,高分在前。

    1. 题目 请编写一个函数void function(Student a[], int n),其功能时:学生的记录由学号和成绩组称个,n名大学生得数据已在主函数中放入结构体数组a中,请编写函数fun, ...

  8. C语言试题二十三之编写一个函数void function(int tt[m][n],int pp[n]),tt指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中

    1. 题目 请编写一个函数void function(int tt[m][n],int pp[n]),tt指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中.二 ...

  9. 数组名不等于指针---sizeof()函数求数组大小错误问题

    前言: 今天在项目中需要求采样点的数量并且遍历,采样点用数组存储,自定义了一个函数想要用sizeof求其长度,然后遍历,结果失败了,查阅之后发现以下问题: 在main函数中,sizeof是可以正常工作 ...

最新文章

  1. new File(String Path)加载资源问题
  2. pandas isnull() 返回bool
  3. 试求由a,b,c三个字母组成的n位符号串中不出现aa图像的符号串的数目
  4. pythonexcel汇总_用python汇总excel表格数据-怎样用python遍历表格中的内容
  5. Hibernate(十):n-n关联关系
  6. ASP.NET自定义错误页面
  7. Python精通-Python列表操作
  8. Android驱动(1)---Ubuntu中为Android系统上编写Linux内核驱动程序实现方法
  9. 时序分析基本概念介绍<Slew/Transition>
  10. C语言基础-01-指针
  11. NumberFormat 的使用
  12. Java docx4j 操作word 1.0
  13. 晶体管电路设计---MOS管与三极管特性
  14. java生成图表_【JAVA】POI生成EXCEL图表(柱状图、折线等)
  15. Contextual Transformer Networks for Visual Recognition
  16. Bugzilla的安装
  17. 集合的基本运算及文氏图
  18. 装饰者模式 增加功能;动态代理减少功能 只要完成自己部分功能 (繁杂部分交给他人处理)...
  19. HDwiki模板说明
  20. C语言程序设计实践教程 邹显春pdf

热门文章

  1. ulua中lua代码使用反射调用c#详解
  2. win32 c语言创建线程,【原创】win32线程及线程内核对象
  3. keil4c语言和汇编混合,keil C语言与汇编语言混合编程
  4. GreenPlum 安装
  5. 告警消息何去何从?在飞书中飞起来
  6. EasyCharts
  7. AUTOSAR架构的CAN通讯学习(一)——整体概述
  8. Dll注入过滤任意Windows控制台命令行输入
  9. CANalyzer/CANoe 回放CAN报文的流程
  10. iOS 跳转到 App Store 下载评分页面