一、会扭转原数组的办法
1、push() 尾部增加一个或多个元素
返回后果:返回新数组长度
示例:[1].push(2) //2 原:[1,2]
2、pop() 尾部删除一个元素
返回后果:返回被删除的元素
示例:[1,2,3].pop() //3 原:[1,2]
3、shift() 头部增加一个或多个元素
返回后果:返回新数组长度
示例:[1].shift(2) //2 原:[2,1]
4、unshift() 头部删除一个元素
返回后果:返回被删除的元素
示例:[1,2,3].unshift() //1 原:[2,3]
5、splice(index,[howmany],[item1, ..., itemX])
//index 必须。开始地位,在指定地位增加/删除我的项目,应用负值指定从数组开端开始的地位。
//howmany 可选。须要删除的项数,为0则不删除
//item1, ..., itemX 可选。须要替换被删除地位的元素
返回后果:有被删除的元素,返回被删除的元素,没有则返回[]
示例1:[1,2,3].splice(1) //[2,3] 原:[1]
示例2:[1,2,3].splice(1,1) //[2] 原:[1,3]
示例3:[1,2,3].splice(1,0,4) //[] 原:[1,4,2,3]
6、sort() 数组会依照ASCII值排序
返回后果:返回排序好的数组
示例:[1,5,2,9,4].sort() //[1,2,4,5,9]
7、reverse() 数组反转
返回后果:反转后的数组
示例:[1,2,3].reverse() //[3,2,1]
8、forEach() 数组循环 简略的循环没有返回值,间接操作原数组
二、不会扭转原数组的办法
1、filter(function(currentValue,index,arr), thisValue) 数组按条件过滤
//currentValue 必须。以后元素的值
//index 可选。以后元素的索引值
//arr 可选。以后元素属于的数组对象
//thisValue 可选。对象作为该执行回调时应用,传递给函数,用作 "this" 的值。如果省略了 thisValue ,"this" 的值为 "undefined"
返回后果:返回符合条件的元素组成的新数组
示例:[1,2,3].filter(item=>{return item>1}) //[2,3] 原:[1,2,3]
2、concat(arr1,arr2...) 数组拼接
返回后果:返回拼接失去的新数组
示例:[1,2,3].concat(4) //[1,2,3,4] 原:[1,2,3]
示例:[1,2,3].concat([1,2]) //[1,2,3,1,2] 原:[1,2,3]
3、slice(start,end) 数组截取 start开始地位 end完结地位
返回后果:返回从开始截取到完结地位(不蕴含)的新数组
示例:[1,2,3].slice(0,1) //[1] 原:[1,2,3]
4、join(str) 数组拼接,以str拼接每项元素
返回后果:返回拼接失去的字符串
示例:[1,2,3].join(',') //1,2,3 原:[1,2,3]
5、map() 数组循环
返回后果:返回新数组
示例:[1,2,3].map(String) //['1','2','3'] 原:[1,2,3]
6、some() 数组循环 有一个条件满足则返回true
返回后果:true/false
示例:[1,2,3].some(item=>{return item>2}) //true 原:[1,2,3]
7、every() 数组循环 所有条件满足则返回true
返回后果:true/false
示例:[1,2,3].some(item=>{return item>0}) //true 原:[1,2,3]
8、reduce(function(pre,cur),option)
//pre 上次返回的后果,cur本次循环到的那一项,option初始值
返回后果:最初一次归并的后果
示例:[1,2,3].reduce((pre,cur)=>{return pre+cur},0) //6 原:[1,2,3]
示例:[1,2,3].reduce((pre,cur)=>{return pre.push(cur)},[]) //[1,2,3] 原:[1,2,3]
9、includes(searchElement,fromIndex)
//searchElement 须要查找的元素, fromIndex开始查找的地位
返回后果:找到true/找不到false
示例:[1,2,3].includes(2) //true 原:[1,2,3]
10、indexOf(item,start) & lastIndexOf(item, start)
//item 必须项,查找的元素
//start 可选,在数组中开始检索的地位,默认0
返回后果:找到1/找不到-1
示例:[1,2,3].indexOf(2) //1 原:[1,2,3]
11、find() & findIndex() 与条件判断的循环类似,条件满足时返回()
//find((currentValue, index, arr) => {})
//currentValue 必须,以后元素
//index 可选。以后元素的索引值
//arr 可选。以后元素所属的数组对象
find返回后果:条件满足时返回第一个满足条件的元素的值 / 不满足条件时返回undefined
findIndex返回后果:条件满足时返回第一个满足条件的元素的索引值 / 不满足条件时返回-1
示例1:[1, 2, 3, 4].find((item, index) => {return item > 2}) //3
示例2:[1, 2, 3, 4].find((item, index) => {return item > 5}) //undefined
示例3:[1, 2, 3, 4].findIndex((item, index) => {return item > 2}) //2
示例4:[1, 2, 3, 4].findIndex((item, index) => {return item > 5}) //-1