数组的方法

查找方法

Array.prototype
dir(Array)
在控制台输入上面两行代码,可以获取到所有的数组方法
—————————————————————————————————

push( )

1、作用:在数组的末尾添加一项
2、返回值:新增项目后数组的长度
3、参数:要新加的项

pop( )

1、作用:在数组的末尾删除一项
2、返回值:被删除的那一项
3、参数:没有参数

shift( )

1、作用:在数组的开头删除第一项
2、返回值:被删除的那一项
3、参数:没有参数

unshift( )

1、作用:在数组的开头添加一项
2、返回值:新增项目后数组的长度
3、参数:要新加的项

splice( )

1、作用:删除指定的项(可以是多项)、修改指定的项、在指定位置添加项
2、返回值:是一个数组,数组装了所有被删除的项
3、参数:1.开始的索引 2.要删除几项 3.要加入的项(可以是多项)
—3.1、在不传参数时:arr.splice( ),数组一个都不删(不变),返回值是[ ]
—3.2、在传一个参数时:arr.splice(2),从索引2开始一直删到数组末尾,返回值是被删除的项
—3.3、在传二个参数时:从第一个参数开始删除,删除第二个参数的个数,返回值是被删除的项
—3.4、在传三个参数时(实现添加):从第一个参数开始删除,删除第二个参数的个数,然后把第三个参数添加到索引为第一个参数的前面(无论第三个参数往后有几个都会依次相加)
—3.5、可以使用正则

slice( ) (原数组不变)

1、作用:从数组中拷贝指定的项(可以是多项)
2、返回值:数组,拷贝出来的项装到这个数组中
3、参数: 1.开始的索引 2.结束的索引
—3.1、在不传参数时:arr.slice( ),数组拷贝所有项,返回值是原数组所有项
—3.2、在传一个参数时:arr.slice(1),从索引1开始一直拷贝到数组末尾,返回值是拷贝出来的项
—3.3、在传二个参数时:arr.slice(2,4),从索引2开始,一直到拷贝到索引4处,但不包括索引4,返回值是拷贝出来的项

concat( ) (原数组不变)

1、作用:把两个数组或多个数组拼成一个
2、返回值:拼好的新数组
3、参数:要拼接的项(数组,数组,字符串…)
arr1.concat(arr2)

toString( ) (原数组不变)(不常用,一般用join)

1、作用:把数组转换成字符串
2、返回值:转换后的字符串
3、参数:没有参数
var res = arr.toString( )
对象转换字符串隐式转换 toString()

join( )(原数组不变)

1、作用:把数组按指定的分隔符转换成字符串
2、返回值:转换后的字符串
3、参数:“分隔符”,任意的“字符”都可以当作“分隔符”
console.log(arr.join(""))
console.log(arr.join("+"))

indexOf( )/lastindexOf( ) (原数组不变)

1、作用:从数组的左边/右边开始查找,返回传入值的索引号
2、返回值:找到的索引
3、参数:一个值
如果找的值在数组中不存在,返回-1,拿这个特性判断一个值在不在数组中;
利用indexOf( )/lastindexOf( )一起,判断一个值在数组中是不是唯一

includes( )(原数组不变)

1、作用:判断数组中是否包含某个值
2、返回值:true/false
3、参数:1.某个值 2.开始查找的索引

reverse( )

1、作用:把数组倒过来(倒序)
2、返回值:倒序后的数组
3、参数:没有参数

sort( )

1、作用:给数组排序(大到小,小到大)
2、返回值:排序好的数组
3、参数:可以不传参数 / 也可以传一个函数
—3.1、在不传参数时,可以实现“10以内”的小到大排序
----------大于10的数字只看第一个数字进行排序
----------字母也可以进行排序
—3.2、如果一个函数作为一个参数传到另一个函数中就叫做“函数柯里化”
----------console.log(arr.sort(function(a,b){return a-b})) 小到大
----------console.log(arr.sort(function(a,b){return b-a})) 大到小
—3.3、localeCompare( ) 按照字母在 Unicode 码表上的顺序进行排序
----------console.log(arr.sort(function(a,b){return b.localeCompare(a)}))
—————————————————————————————————

在数组中内置了一组用来遍历数组的方法,一共7个,

forEach( ),map( ),filter( ),find( ),some( ),every( ),reduce( )

它们的共同点
1、它们都自带循环
2、它们的参数都是一样的,都是一个函数
-----参数
-----2.1、被循环出来的那一项(必填)
-----2.2、被循环出来的那一项索引
-----2.3、原始数组的拷贝
3、不会改变原数组

forEach( )

1、作用:遍历数组,没有特殊的功能
2、返回值:undefined(不用在意返回值)
3、参数:是一个函数
缺点:它里面不能写 return break continue,还不能改变原数组项

map( )

1、作用:遍历数组,更新数组的每一项
2、返回值:更新好的数组
3、参数:是一个函数

filter( )

1、作用:遍历数组,过滤数组中不满足条件的项
2、返回值:满足条件的项(不满足的被过滤)
3、参数:是一个函数
4、假的项会自动过滤

find( )

1、作用:遍历数组,找到满足条件的第一项
2、返回值:满足条件的项(不满足的被过滤)
3、参数:是一个函数

some( )

1、作用:遍历数组,如果任意一项满足条件就返回true,否则返回false
2、返回值:true/false
3、参数:是一个函数

every( )

1、作用:遍历数组,如果所有项都满足条件就返回true,否则返回false
2、返回值:true/false
3、参数:是一个函数

reduce( )

1、作用:遍历数组,把每一次遍历到的项都“加”起来
2、返回值:“加”好的结果
3、参数:是一个函数,它的参数分别是:
1.初始值(总数) (必填的)
2.当前循环到的那一项 (必填的)
3.原始数组的拷贝

let arr = [12, 23, 34, 45];
let total = arr.reduce((x, y) => {
	//=>x:上一次处理的结果
	//=>y:数组中某一项
	//reduce不传第二个参数:x初始值是第一项的值,然后每一次返回的结果作为下一次x的值
	//reduce传第二个参数:x初始值就是第二个参数值
	console.log(x, y);
	return x + y;
}, 0);
console.log(total);

数组的迭代方法(遍历数组中的每一项做一些特殊的处理)

  • forEach 遍历数组每一项(数组中有多少项,就会触发执行多少次回调函数,每一次把迭代的当前项和当前项的索引传递给回调函数)
  • map 和forEach类似,只不过支持返回值,回调函数中的返回值会把当前迭代的这一项替换掉
  • find 迭代数据每一项的时候,只要有一项在回调函数中返回TRUE则找到内容,后面不会在迭代了,返回的是找到的这一项
  • filter 迭代每一项的时候,回调函数中所有返回TRUE的这一项获取到,以新数组返回(包含筛选出来的所有项)
  • every 和some类似,但是回调函数都返回TRUE,整体才是TRUE
  • some 验证数组中是否存在符合某个筛选条件的,只要有一个符合结果就是TRUE
  • reduce 上一次回调函数中运算的结果会作为下一次处理的信息
let total=arr.reduce(function(n,item){
    return n+item;
},0);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值