对象操作
对象的crud
创建对象:let obj={}
新增属性:ojb.a=1
修改属性:ojb.a=2
查询属性:obj.a
删除属性:delete obj.a
其他操作
obj[a]=1
Object.assign() //深拷贝?浅拷贝
let{ name} =user
?. b=a?.name a是undefined或者null b不报错
?? b=a??c a是undefined或者null 则赋值c给b
|| b=a||c a是undefined或者null 则取c
??= b??=a 左侧是undefined或者null 则取右侧值
循环对象属性for key in obj Object.keys(obj)
数组操作
-
- 创建数组 let arr=[]
- 新增元素
-
-
- arr[0] =1
- push()
- unshift()
-
-
- 删除元素
-
-
- splice(0,1) 下标为0删除1个
- pop() 从尾巴去掉一个
- shift() 从头去掉一个
-
-
- 修改元素arr[index]=1
- 查询元素arr[index]
- 截取数组slice() 包头不包尾
- 合并数组concat()
- 字符串变数组split()
- 数组变字符串join() 默认使用;号分割
- 排序sort() 【有坑】【1,2,10】->【1,10,2】
- 倒序reverse()
- 获取元素序号indexOf()没这个元素就是-1 lastIndexOf() 相反
- * filter()可以筛选和删除元素
- *find()找到元素下标
- map() [1,2,3]map(v=>v*2) [{name:''a}{name:'b'}].map(v=>v.name)
- forEach()
- reduce
-
-
- 语法:arr.reduce(function(prev,cur,index,arr){...},init);
- prev累计器累计回调的返回值,标识上一次用回调的返回值,或者初始化init
- cur表示当前正在处理的数组元素
- index表示当前正在处理的数组元素的索引
- arr表示原数组
- init初始值
-