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)