一、会扭转原数组的办法
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