javascript集合
# 数组
数组是js中最常见的集合,下面介绍下它的常用方法以及ES6中更为优雅的用法。
# 创建
// 通过字面量(推荐)
const arr = ['susan', 'lily', 100, {mom: 'jenny', dad: 'Danny'}]
// 通过构造函数
const arr = new Array({name: 'susan'}, 100, 'susan', [1,2,3])
# 增删
- push(value): 尾部添加
- unshift(value): 头部添加
- splice(startIndex, 0, value): 索引为index元素之后添加
- pop(): 尾部删除
- shift(): 头部删除
- splice(index, number): 索引为index元素后删除number个元素
# 查找
- find(callback): 返回满足条件的第一个元素的值
- findIndex(callback): 返回满足条件的第一个元素的索引
- filter(callback): 返回一个新数组,元素为满足回调函数的全部元素
# 排序
- sort(callback): 回调函数结果小于0,a元素在b元素之前;等于0,在相同位置;大于0,b在前a在后。
# 遍历
- 铁打的for循环
- forEach(callback)
# 计算
- reduce(callback(result, item){ return result + item}): 向每个回调函数传入合计值和当前元素
# 映射
- map(callback): 返回一个新数组,数组内容为基于回调的执行结果
# 测试数组元素是否合法
- every(callback): 测试每个元素是否符合callback,全部符合返回true
- some(callback): 有一个元素符合callback即返回true
# 字符串转数组
var str = '黄晓明,陈坤,霍建华'
str.split(',') // ['黄晓明', '陈坤', '霍建华']
# 数组转字符串
var arr = ['黄晓明', '陈坤', '霍建华']
arr.join() // '黄晓明,陈坤,霍建华'
arr.join('>>>') // '黄晓明>>陈坤>>霍建华'
arr.toString() // '黄晓明,陈坤,霍建华'
# Map
# 创建
const map = new Map()
const susan = {id: 0, name: 'susan'}
// set方法
map.set(susan, {job: 'teacher'})
// get方法
map.get(susan)
// delete
map.delete()
# 特别说明,函数splice的用法
- 增加元素:
arr.splice(index,0,item1,item2...)
,从index起删除0个元素,再插入元素item1等 - 删除元素:
arr.splice(index, len)
,index为删除起始位置,len为删除元素长度。 - 删除所有元素:
arr.splice(0)