Javascript数组原型提供的方法很是之多,主要分为三种:数组
pop()
删除一个数组中的最后的一个元素,而且返回这个元素函数
push()
添加一个或者多个元素到数组末尾,而且返回数组新的长度测试
shift()
删除数组的第一个元素,并返回这个元素code
unshift()
在数组开始处插入一些元素,并返回数组新的长度对象
splice()
从数组中添加/删除一些元素,而后返回被删除的元素排序
reverse()
颠倒数组中元素的顺序索引
sort()
用于对数组的元素进行排序ip
fill()
-- ES6新增
将数组指定区间内的元素替换为某个值element
copyWithin()
-- ES6新增
数组内元素之间的替换字符串
contact()
将传入的数组或者元素与原数组合并,组成一个新的数组并返回
slice()
链接两个或多个数组
join()
将数组中的全部元素链接成一个字符串
indexOf()
用于查找元素在数组中第一次出现时的索引,若是没有,则返回-1
lastIndexOf()
用于查找元素在数组中最后一次出现时的索引,若是没有,则返回-1
includes()
-- ES7新增
用来判断当前数组是否包含某个指定的值,若是是,则返回 true,不然返回false
针对数组遍历方法,从
三个方面来讨论
forEach()
指定数组的每项元素都执行一次传入的函数,返回值为undefined
let arr=[1,2,3,4]; arr.forEach(function(value,key,arr){ //值,索引,数组(默认为选定数组) return item; //进行任何操做 }) //只返回undefined
无return
返回 undefined
;
有return
:
return
:返回undefined
;return false
:返回undefined
;return true
:返回undefined
;简言之,仅返回undefined;
总结:
undefined
map()
遍历数组,使用传入函数处理每一个元素,并返回函数的返回值组成的新数组
无return
返回由 undefined
组成的数组,数组个数与原数组个数相同;
有return
return
表达式,返回有响应表达式 组成的数组简言之,返回值,一定是一个与原数组个数相等的数组;可是数组中的值,根据所作的处理有所不一样;
总结:
filter()
使用传入的函数测试全部元素,并返回全部经过测试的元素组成的新数组
没有return
,返回值为空数组;
有return
:
return
,返回空数组;return false
,返回空数组;return true
,返回原数组;(是深拷贝仍是浅拷贝)return
其他表达式,若是有判断条件,返回相应判断条件构成的数组;没有判断条件,返回原数组;简言之,返回值,要么为空数组,要么为原数组,要么为原数组部分元素组成的数组;
总结:
every()
使用传入的函数测试全部元素,每个元素经传入的函数处理都返回true
该方法才返回true
,不然返回false
(验证是否每个元素都知足测试函数)
验证是否有元素都知足测试函数,eg: return (element >= 10)
无return:返回false;
有return
:
return
:返回false
;return false
:返回false
;return true
:返回true
;简言之,只返回 true
或者 false
总结:
true
或者 false
some()
使用传入的函数测试全部元素,只要有一个元素经传入的函数处理返回true
该方法就返回true
,不然返回false
(验证是否有元素都知足测试函数)
无return
,返回 false
有return
:
return
,返回false
;return false
,返回false
;return true
,返回 true
;而且后续被中断简言之,仅返回true
、或者false
总结:
return true
,能够被中断true
、或者false
find()
-- ES6新增
返回数组中第一个知足条件的元素(若是有的话), 若是没有,则返回 undefined
无return
:返回undefined
有return
:
return
:返回undefined
;return false
:返回undefined;return true
:返回相应的索引值,而且中断总结:
return true
中断循环undefined
或者 相应索引值findIndex()
-- ES6新增
返回数组中第一个知足条件的元素的索引(若是有的话), 若是没有,则返回 -1
keys()
-- ES6新增
返回一个数组索引的迭代器
values()
-- ES6新增
返回一个数组迭代器对象,该对象包含数组中每一个索引的值
entries()
-- ES6新增
返回一个数组迭代器对象,该对象包含数组中每一个索引的键值对
reduce()
接收一个方法做为累加器,数组中的每一个值(从左至右) 开始合并,最终为一个值
reduceRight()
接收一个方法做为累加器,数组中的每一个值(从右至左) 开始合并,最终为一个值
最终总结下,对于数组遍历方法,forEach
map
filter
every
some
find
,六个方法,都不会改变原数组
,只有some
find
可中途跳出循环,返回结果看上述分析;