一、数组定义

保存任意类型的数据集合

(1)构造函数方式实现: var arr = new Array()

可以制定数组的长度

(2) var a = [];

二、数组数据操作

(1)赋值方式

var a1 = [];a1[0] = "hello";var a2 = ["a","b"];a2[1] = b;

(2)指定长度

var arr = new Array(3)  长度为3的数组arr[0] --> undefinedarr.length;var arr = [,,];arr[1] --> undefined

(3)数组的遍历

var arr = [23,24,25,26]; 下标从0开始[1]   for (var i =0; i < arr.length; i++){    arr[i];}[2]   for infor(var i in arr){ }

(4)数组的添加和删除

var arr = [34,56,12];push(88); 在数组末尾添加数据,对原数组进行修改,返回值为修改后的数组长度pop(); 在数组末尾删除一个数据 返回的是被删除的元素unshift(); 在数组起始添加数据 对原数组进行修改,返回值为修改后的数组长度shift(); 在数组起始删除一个数据 返回的是被删除的元素

三、数组的操作方法

1、reverse() :对原数组进行翻转

var arr = [1,2,3,4,5,6];arr.reverse();[ 6,5,4,3,2,1 }

2、join(); 制定分隔符 将数组转换为字符串 生成新的字符串

var a = "1,2,3,4,5"var b = a.split(",");b.join(""); 12345

3、concat(); 连接数组,将数据添加到数组的末尾,不修改原数组 生成新的数组,只能打散一维数组

不会打散数组中包含的数组var a = "1,2,3,4,5"var b = "6,7";a1.concat(b);var a = [1,2,3,4,5];var b = [6,7];console.log(a.concat(b)); [1, 2, 3, 4, 5, 6, 7]console.log(a.concat(55,66)); [1, 2, 3, 4, 5, 55, 66]console.log(a.concat([88,99],[11,22]))[1, 2, 3, 4, 5, 88, 99, 11, 22]console.log(a.concat([[11,22]],[33,44],"abc"));[1, 2, 3, 4, 5, Array(2), 33, 44, 'abc']

4、slice() 截取子数组 不修改原数组 生成新的数组

起始不包含 终止包含 如为负数,由右向左倒数截取var a = [1,2,3,4,5];a.slice(2,4) [3,4]a.slice(1,4) [2, 3, 4]a.slice(2) [3, 4, 5]a.slice(2,10) [3, 4, 5]a.slice(-4,-2) [2, 3]

5、splice() 增加和删除数组元素

splice(arg1,arg2,arg3...)arg1 = 起始位置如只有一个参数,表示从起始位置删除所有的元素,返回的是被删除的元素如果第一参数为负数,则从右向左查找arg2 = 删除元素个数如果有两个参数,表示被删除的元素个数如果第二个参数为负数,默认变为0arg3及后面所有参数 要插入数组中的元素var a= [1,2,3,4,5,6,7]a.splice(1,2,3,4,5) [1,3,4,5,4,5,6,7]从下标1处删除两个元素,把新添加元素3,4,5 添加到删除位置处b = a.splice(2)  a = [1,2] / b = [3,4,5,6,7]a.splice(2,2) [1,2,5,6,7] a.splice(2,0) [1,2,3,4,5,6,7]a.splice(2,0,0,0,0) [1,2,3,0,0,0,4,5,6,7]a.splice(-2,-3,7,8) [1,2,3,4,5,6,7,8,7,8]

四、数组检测

var arr = [];

1、typeof(arr) --> Object2、Array.isArray(a1) true3、if(arr instanceof Array){} true4、arr.constructor == Array true

五、数组的toString()方法

所有对象都有toString() valueOf() toLocaleString()

toString():每个值的字符串形式,以,拼接数组转字符串

六、数组的下标

var arr = [0,1,2,3,4,5];

arr[0] -- > 0

范围:0 - 2^32

arr[true] undefined

obj = {name:"tt"}arr[true] -- > 当作obj处理

arr[-2] undefined

arr[1.6] undefined

下标可以是逐渐递增的表达式

var arr = [];for (var i = 0;i<10;i++){
arr[i++] = i;

}

七、数组函数

数组函数

1、indexOf() 返回数组中第一个找到的元素的位置,不存在返回 -1

2、forEach()

数组.forEach(function(遍历元素值,下标,当前数组){})var arr = [1,2,3,4,5,6,7,8,9,10]arr.forEach(function(item, index,arr) {console.log(item,index)item数组值 index数组下标 arr数组本身})

3、map() 对数组的每一项进行遍历


var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var arr2 = arr.map(function (item, index, arr) {
return item * 2;
}).map(function (item, index){ --链式调用
return item * 10;
});

***** map()与forEach的区别

1、forEach只是遍历,map可以生成新的数组2、map比forEach速度更快3、map可以进行链式调用

4、filter() 数据过滤

数组.filter(function(遍历元素值,下标,当前数组){})(1)返回新数组,不对原数组修改(2)对返回true的结果过滤,false的结果忽略var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];提取出 > 30的数据var arr2 = arr.filter(function(item){return item > 5;})

5、reduce() 接受一个函数作为累加器,数组中的每一个值,从左到右开始缩减

最终计算为一个值数组.reduce(function(初始值,遍历元素值,下标,当前数组){},赋初始值(可省略))a1 = [1,2,3,4,5];a2 = a1.reduce(function(init,value,index,arr){return init + value;// 将init value 逐次累加 返回最终结果})

6、some() 判读数组是否有满足条件的元素 相当于||

数组.some(function(遍历元素值,下标,当前数组){})var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]arr.some((item,index) =>{return item > 6;});true返回Boolean类型,true: 如果找到了满足条件的元素,返回true则循环结束,跳出循环体false: 没有找到,循环继续。函数的执行次数 不等于数组的长度

7、every() 检测数组中所有元素是否都满足指定条件 相当于&&

数组.every(function(遍历元素值,下标,当前数组){})有一项不满足就返回false,都满足才返回true函数的执行次数不一定等于数组长度var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]arr.every((item) =>{return item > 0;});

JavaScript 数组及数组函数常用方法(完全版)相关推荐

  1. javascript类式继承函数最优版

    直接上代码: klass函数 var klass = function (Parent, props) {var Child, F, i;//1.新构造函数Child = function () {i ...

  2. JavaScript强化教程——数组的基本处理函数

    2019独角兽企业重金招聘Python工程师标准>>> 本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍:JavaScript强化教程 -- 数组的基本处理函数 Arra ...

  3. html函数参数数组遍历,JavaScript foreach遍历数组

    JavaScript forEach遍历数组教程 JavaScript forEach详解 定义 forEach() 方法为每个数组元素调用一次函数(回调函数). 语法 array.forEach(f ...

  4. JavaScript【流程控制】【数组】【函数】【函数作用域】经典!!

    表达式和语句 表达式 一个表达式可以产生一个值,有可能是运算.函数调用.有可能是字面量.表达式可以放在任何需要值的地方. 语句 语句可以理解为一个行为,循环语句和判断语句就是典型的语句.一个程序有很多 ...

  5. javascript打飞机程序8x8x飞机大战js打飞机程序,飞机大战知识点包含了JavaScript面向过程的全部知识点,包括变量、运算符、判断、循环、数组、自定义函数、系统函数、事件等。...

    js打飞机程序,飞机大战知识点包含了JavaScript面向过程的全部知识点,包括变量.运算符.判断.循环.数组.自定义函数.系统函数.事件等. 讲解了JavaScript编程语言制作游戏界面,添加游 ...

  6. JavaScript二维数组与函数

    目录 一.二维数组 1.创建方式 2.访问二维数组元素 3.练习 (1)求3*4的二维数组的每行元素之和 (2)求3*4的二维数组的每列元素之和 (3)求3*3的二维数组的对角线元素之和 4.二维数组 ...

  7. JavaScript二维数组和函数

    一.二维数组 1.什么是二维数组? 通过两个下标(索引)来确定一个元素.二维数组可以理解为数组的数组.二维数组组织为矩阵,可以表示为行和列的集合. 2.创建方式 2.1.通过new Array()创建 ...

  8. JavaScript二维数组的常用方法及排序

    多维数组: 多维数组实际上就是数组的数组,指数组的每一元素也是一个数组: JavaScript中的二维数组的列的长度可以不唯一: 二维数组的创建: //创建已知的二维数组var multiArr=[[ ...

  9. JavaScript数组和字符串的常用方法

    1. 数组的常用方法总结 forEach():为数组中的每个元素执行一次回调函数 var arr = [1,2,3] arr.forEach((i, index, arr) => {consol ...

  10. JavaScript数组的定义及常用方法

    目录 前言 一.数组是什么? 二.数组的定义方式 1.字面量方法 2.构造函数创建 三.数组常用方法 1.push:在数组最后一位添加方法,可添加多个 2.pop:把数组的最后一位剪切(传参无效) 3 ...

最新文章

  1. 小样,加张图你就不认识我了?“补丁”模型骗你没商量!| 技术头条
  2. (21)页目录表,页表基址(XP系统 10-10-12分页模式)
  3. Android开发之activity跳转页面失败的问题
  4. JavaScript --- 渲染数据量大的数组
  5. bzoj1003[ZJOI2006]物流运输
  6. 手把手教你运用深度学习构建视频人脸识别模型(Python实现)
  7. 可以通过格式化硬盘清除计算机病毒吗,电脑中毒,完全格式化硬盘可以吗?
  8. 上网行为管理软件的功能
  9. 计算机图形学与OpenGL
  10. 拼音搜索 -- 自动解析拼音汉子组合(包含多音字,拼音缩写)
  11. 装mysql电脑网卡不见了_网络适配器不见了怎么办【解决方法】
  12. 农业大田作物智慧种植科研
  13. 最简单日柱推算法_干支记日推算方法揭秘
  14. 知乎问题下用户评论的爬取
  15. MySQL No compatible servers were found.You’ll need to cancel this wizard and install one
  16. 【必拿下系列】106. 从中序与后序遍历序列构造二叉树105从前序与中序遍历序列构造二叉树
  17. D3D绘制2D图像例子
  18. kindle无法开机
  19. 【计算机科学基础】玩转CSDN博客
  20. UA OPTI544 量子光学14 补充:经典分光器与量子分光器

热门文章

  1. [转]JSP文件管理器0.5版本,显示目录和文件,支持cmd操作,也可当jsp木马使用...
  2. 结构体指针初始化问题
  3. 2023年AP课程商科学科考试报名开启,AP社会考生报名火热咨询中
  4. 中国食用菌市销售态势与竞争趋势预测报告(新版)2022-2027年
  5. 电脑突然无法拖动文件
  6. 苹果Mac OS X系统安全评级(2)
  7. 线上问题-kafka生产者发送消息总是失败
  8. 利用代码修改layout_marginBottom的属性
  9. 5-2 文件系统及其功能
  10. 在 M1/M2 Mac 上,让 Windows 11 免费“跑”起来!