标题数据类型分类
常用的数据类型
`number` / `string` / `boolean` / `undefined` / `null` / `object` / `function` / `array` / ...
分类
值传递:基本数据类型number` / `string` / `boolean` / `undefined` / `null`
地址传递:复杂数据类型object` / `function` / `array` / ...
创建一个数组
数组就是一个 `[]`;在 `[]` 里面存储着各种各样的数据,按照顺序依次排好
字面量创建一个数组
直接使用 `[]` 的方式创建一个数组
var arr1 = []
var arr2 = [1, 2, 3]
内置构造函数创建数组
使用 js 的内置构造函数 Array 创建一个数组
var arr1 = new Array()
var arr2 = new Array(10)
此时数组中的数据都是undefined
var arr3 = new Array(1, 2, 3)
数组的 length
length: 长度的意思
length: 就是表示数组的长度,数组里面有多少个成员,length 就是多少
数组的索引
索引,也叫做下标,是指一个数据在数组里面排在第几个的位置
注意: 在所有的语言里面,索引都是从 0 开始的 在 `js` 里面也一样,数组的索引从 0 开始
for 循环遍历数组
for (var i = 0; i < arr.length; i++) { console.log(arr[i]) }
i < arr.length 因为 length 就是数组的长度,是一个数字,所以我们可以直接用它来决定循环次数
数组的常用方法
arr.push()
参数:任意个,任意值
功能:在数组后依次加入数据
返回值:新数组的长度
会改变原数组
arr.unshift()
参数:任意个任意值
功能:“在数组头部依次加入数据
返回值:新数字的长度
会改变原数组
arr.pop()
参数:无
功能:删除数组最后一位
返回值:删除的数据
修改原数组
arr.shift()
参数:没有参数
功能:删除数组第一位
返回值:删除的数据
会修改原数组
arr.splice()
参数
1个参数:是索引
功能:从参数索引开始删除到最后一位
2个参数:参数一是索引,参数二是个数
功能:从参数一索引开始向后删除参数二个
三个或多个参数
功能:删除以后,填充第三个参数向后的所有数据
功能
删除或替换
返回值
删除的数据(是一个数组的形式)
会修改原数组
arr.reverse()
参数
没有参数
功能
翻转数组
返回值
翻转后的数组
会修改原数组
arr.sort()
参数
固定格式(传一个回调函数)
function(a,b){return a-b}(倒序相反)
功能
给数组排序(数值类型的排序规则排序;得到结果就停止,诸位比较)
返回值
排序后的原数组
会修改原数组
arr.concat()
参数
别的数组
功能
合并数组
返回值
返回合并后的新数组
不修改原数组
arr.join()
参数
数值
功能
无参数:将数组转成字符
有参数:将数组转成参数,原数组中连接的都好会被替换成参数(参数识别 “·” )
返回值
转成的字符
不修改原数组
arr.slice()
参数
一个参数
截取索引为参数一向后最后一个数据向前的所有
两个参数
截取索引为参数一向和索引为参数二中间所有的(不包含索引参数二的)
参数为负数
第二个参数为负数则从后往前数,最后一位为-1
功能
截取(复制)
返回值
复制的数据(数组形式)
不修改原数组
标题ES5新增的数组方法
arr.indexOf()
参数
一个参数
查询数组中是否有参数一的数据
两个参数
参数二为指定位置,从指定位置开始向后查询(可省略)
功能
从前向后查查询
返回值
查询到返回查询到第一个数据的索引;查询不到返回-1
不修改原数组
arr.castIndexOf()
参数
一个参数
要查询的数据
两个参数
参数二为指定位置,从指定位置开始向前查询(可省略)
功能
从后向前查
返回值
查询到返回查询到第一个数据的索引;查询不到返回-1
不修改原数组
arr.forEach()
参数:回调函数
arr.forEach(function( 数据,索引,数组自身){可以有返回值})
功能
遍历数组
返回值
undefined
回调函数的返回值对forEach()没有影响
不修改原数组
arr.map()
参数:回调函数
arr.map(function(数据,索引,数组本身){可以有返回值})
功能
可以修改值,并返回到新数组中
返回值
回调函数的返回值被放在map最终返回的数组内
不修改原数组
arr.filter()
参数:回调函数
arr.filter(function( 数据,索引,数组自身){可以有返回值})
功能
过滤值;并返回到一个新数组中
返回true;;;;返回所有为true的数据并跳过为false的数据
返回值
true
返回数据
false
啥都没有
不修改原数组
arr.some()
参数:回调函数
arr.some(function( 数据,索引,数组自身){可以有返回值})
功能
遍历数组中是否有符合条件的值;只要有符合条件的值就返回true;同时停止遍历;没有符合的值返回false
返回值
true
false
不修改原数组
arr.every()
参数:回调函数
arr.every(function( 数据,索引,数组自身){可以有返回值})
功能
遍历数组中是否有符合条件的值,必须全部符合都是true才是true;如果有一个是false那就是false同时停止
返回值
true
false
不修改原数组
arr.reduce()
参数:回调函数
arr.reduce(function(上一次(prev) 数据,索引,数组自身){可以有返回值})
功能
归并:可以将每次回调函数的返回值,传入下次回调函数的执行,作为下次回调函数的第一个值存在;;第一次表示数组的第一个数据,此时第二个参数就是数组的地热个数据
arr.reduceRihnt()
功能:返向归并