数组的29个方法

数组的方法一共29个:
1.转字符:toString, join,
str.split
2.堆栈方法:
push 返回增加后的长度
pop 返回删除的最后一个项目
unshift 返回增加数组的长度
shift 删除的项目

3.排序 reverse() sort随机排序
var arr = [1,2,3,4,5]
arr.sort() // 从小到大
arr.sort((a,b)=>b-a) // 从大到小
arr.sort(()=> Math.random() -0.5) // 随机排序

4.拼接 concat
arr.concat([1,2]) //二维会展平为一维数组

5.删改的方法
slice // 不改原数组
splice // 改原数组

纯数组的浅拷贝:
浅拷贝过来的数据只有第一层数据不是共享的,第二层乃至第三层的数据和源对象是共享的。而深拷贝是和源对象没有任何共享的。
1.slice
var arr = [1,2,3,4,5]
newarr = arr.slice(0)
2.concat
newarr2 = arr.concat()
3.[…arr]
4.Array.from

slice(start,end) // 返回新数组
var arr = [1,2,3,4,5]
arr.slice(3) //[4,5]

splice(start, num) // 删除原数组,返回删除的数组,第二个值为个数
arr.splice(-2) //[4,5]

splice(start, num,5) //第三个值为插入数(删除并插入),可以是数组,concat不能插入数组
var arr=[1,2]
arr.splice(0,5,0,0,0) // [0,0,0] return [1,2]
arr.splice(0,1,[1,2,3]) //[[1,2,3],2] return 0

类数组:
1.字符串
2.argument
3.将类数组转为数组
dom对象,如document.getElementByTagName(‘div’)
类数组只有length,没有数组上的其他方法,所以用call调用
[].slice.call(‘duanhuikun’)
[…‘duanhuikun’]
Array.from(类数组) //将类数组转为数组

6.indexOf lastIndexOf,includes
const array1 = [1, 2, 3];
console.log(array1.includes(2));
// expected output: true

7.创建数组的方法:
Array() //因为不方便单个值,所以出现of
of,from,fill(6,start,end)
Array.of(3,4,5),变成数组
Array.from()类数组变成数组

8.find findIndex
arr.find(n =>n>3) //返回第一个符合条件的成员
findIndex //返回索引

9.迭代
keys,value,entries(返回keys,values的迭代条目)

10.数组遍历的方法
forEach,filter,map,Array.from,some,every
map((item, index, arr) => console.log(item))
这几个参数都一样,除了下面的reduce
forEach没有返回值,即使设置return也没有

some返回 boolean //有一个满足条件,就返回boolean
every//每个符合条件,返回boolean
arr.some(item => item%2===0)

reduce,reduceRight
reduce((total,item,index,arr)=>total+1, initvalue)

数组展平
(function flattenRe(arr2){
return arr2.reduce((total,item)=>total.concat(Array.isArray(item)?flattenRe(item):item),[])
})(arr2)


以上数据或者换一种思路记忆
var arr = [1,2,3,4]
1.增
arr.push()//返回增加后数组的长度
arr.unshift()//返回增加后数组的长度
arr = arr.concat(7,8)//拼接几个数组

2.删
arr.pop()//返回删除后的项目
arr.shift()// 返回删除后的项目
arr.splice(start,length)// 返回删除的数组项目

3.改
arr.splice(start,length,替换项目) // 返回修改删除的数组
slice(start,end) //不修改原数组
arr[num]=newNum

排序
arr.reverse()
arr.sort()
arr.sort() // 从小到大

arr.sort((a,b)=>b-a) // 从大到小

arr.sort(()=> Math.random() -0.5) // 随机排序

4.查
arr.indexof()//返回index
arr.lastIndexOf()//返回index
arr.includes()//返回boolean
arr.find(x=>x>3) //返回第一个符合的项目
arr.findIndex(x=>x>3)//返回第一个符合index

5.转字符串
toString()
join() //如果字符转数组split(’’)

6.数组浅拷贝
浅拷贝过来的数据只有第一层数据不是共享的,第二层乃至第三层的数据和源对象是共享的。而深拷贝是和源对象没有任何共享的。
newarr = arr.concat()
newarr2 = arr.slice(0)
newarr3 =[…arr]
newarr4= Array.from(arr)

7.迭代器
key,value,entries,fromEntries

8.遍历
for,forEach,filter,map,Array.from,every,some,
reduce,reduceRight
reduce((total,item,index,arr)=>total+1, initvalue)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端段

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值