目录

  1. 数组的基本操作
    1. 改变原始数组的操作方法
      1. splice() 添加/删除数组元素
      2. sort()
      3. pop()
      4. shift()
      5. push()
      6. unshift()
      7. reverse()
      8. copyWithin()
      9. fill()
    2. 不改变原始数组的操作方法
    3. slice()
    4. join()
    5. toLocaleString() 数组转字符串
    6. toString() 数组转字符串 不推荐
    7. concat()
    8. ES6扩展运算符…合并数组
    9. indexOf() 查找数组是否存在某个元素,返回下标
    10. lastIndexOf() 查找指定元素在数组中的最后一个位置
    11. ES7 includes() 查找数组是否包含某个元素 返回布尔
  2. 遍历方法(12个):
    1. 关于forEach()你要知道:
    2. every 检测数组所有元素是否都符合判断条件
    3. some 数组中的是否有满足判断条件的元素
    4. filter 过滤原始数组,返回新数组
    5. map 对数组中的每个元素进行处理,返回新的数组
    6. reduce 为数组提供累加器,合并为一个值
    7. reduceRight 从右至左累加
    8. ES6 find()& findIndex() 根据条件找到数组成员
    9. ES6 keys()&values()&entries() 遍历键名、遍历键值、遍历键名+键值

数组的基本操作

改变原始数组的操作方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 向数组末尾添加元素,并返回新的长度
push
# 删除最后一个并返回删除的元素
pop
# 向数组开头添加元素,并返回新的长度
unshift
# 将第一个元素删除并且返回删除元素,空即为undefined
shift
# 颠倒数组顺序
reverse
# 对数组排序
sort
# 删,增,替换数组元素,返回被删除数组,无删除则不返回
splice
# 用于从数组的指定位置拷贝元素到数组的另一个指定位置中。
copyWithin
# 用于将一个固定值替换数组的元素。
fill
splice() 添加/删除数组元素

定义: splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目
array.splice(index,howmany,item1,.....,itemX)
参数:
  index:必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
  howmany:可选。要删除的项目数量。如果设置为 0,则不会删除项目。
  item1, ..., itemX: 可选。向数组添加的新项目。
删除元素

1
2
3
4
5
6
let a = [1, 2, 3, 4, 5, 6, 7];
let item = a.splice(0, 3); // [1,2,3]
console.log(a); // [4,5,6,7]
// 从数组下标0开始,删除3个元素
let item = a.splice(-1, 3); // [7]
// 从最后一个元素开始删除3个元素,因为最后一个元素,所以只删除了7

删除并添加

1
2
3
4
5
6
7
8
let a = [1, 2, 3, 4, 5, 6, 7];
let item = a.splice(0,3,'添加'); // [1,2,3]
console.log(a); // ['添加',4,5,6,7]
// 从数组下标0开始,删除3个元素,并添加元素'添加'
let b = [1, 2, 3, 4, 5, 6, 7];
let item = b.splice(-2,3,'添加1','添加2'); // [6,7]
console.log(b); // [1,2,3,4,5,'添加1','添加2']
// 从数组最后第二个元素开始,删除3个元素,并添加两个元素'添加1''添加2'

添加元素

1
2
3
4
5
6
7
8
9
let a = [1, 2, 3, 4, 5, 6, 7];
// [] 没有删除元素,返回空数组
let item = a.splice(0,0,'添加1','添加2');
console.log(a); // ['添加1','添加2',1,2,3,4,5,6,7]
let b = [1, 2, 3, 4, 5, 6, 7];
// [] 没有删除元素,返回空数组
let item = b.splice(-1,0,'添加1','添加2');
// [1,2,3,4,5,6,'添加1','添加2',7] 在最后一个元素的前面添加两个元素
console.log(b);

  数组如果元素不够,会删除到最后一个元素为止
  操作的元素,包括开始的那个元素
  可以添加很多个元素
  添加是在开始的元素前面添加的

sort()
pop()
shift()
push()
unshift()
reverse()
copyWithin()
fill()

不改变原始数组的操作方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 连接多个数组,返回新的数组
concat
# 将数组中所有元素以参数作为分隔符放入一个字符
join
# 返回选定元素
slice
# 数组映射为新的数组
map(es6)
# 数组过滤,返回所有通过方法判断后(判断为true时)生成的新数组
filter(es6)
# 数组遍历,没有返回值
forEach
# 对数组中的每一项运行给定函数,如每一项均为true时返回true,否则返回false
every(es6)
# 数组中的的元素运行给定函数,如其中有一项为true时返回true,
# 此时剩余的元素不会再执行检测,如果所以都为false则返回false
some(es6)
# 寻找数组中符合测试方法(函数)条件的第一个元素,并且返回该元素
find(es6)
# 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
reduce(es6)
# 方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。
indexOf
# 方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回true,否则返回false。
includes(es7)

slice()

join()

toLocaleString() 数组转字符串

toString() 数组转字符串 不推荐

concat()

ES6扩展运算符…合并数组

indexOf() 查找数组是否存在某个元素,返回下标

lastIndexOf() 查找指定元素在数组中的最后一个位置

ES7 includes() 查找数组是否包含某个元素 返回布尔

遍历方法(12个):

关于forEach()你要知道:

every 检测数组所有元素是否都符合判断条件

some 数组中的是否有满足判断条件的元素

filter 过滤原始数组,返回新数组

map 对数组中的每个元素进行处理,返回新的数组

reduce 为数组提供累加器,合并为一个值

reduceRight 从右至左累加

ES6 find()& findIndex() 根据条件找到数组成员

ES6 keys()&values()&entries() 遍历键名、遍历键值、遍历键名+键值

1
[【干货】js 数组详细操作方法及解析合集](https://juejin.im/post/5b0903b26fb9a07a9d70c7e0)