js数组API深入学习

数组api分类

- 分类 api 是否改变原数组 是否返回新数组 备注
1 增删 push 改变
2 增删 pop 改变
3 增删 unshift 改变
4 增删 shifit 改变
5 增删 splice 改变
6 增删 slice 返回
7 遍历 every
8 遍历 some
9 遍历 filter 返回
10 遍历 map 返回
11 遍历 reduce
12 遍历 forEach 不能break, 会报语法错
13 遍历 keys 返回一个遍历器对象,调用for…of
14 遍历 entries 返回一个遍历器对象,调用for…of
15 遍历 values 返回一个遍历器对象 ,调用for…of
16 查找 find
17 查找 findIndex
18 查找 indexOf
19 查找 includes
20 排序 sort 改变
21 排序 reverse 改变
22 连接 join
23 连接 concat 返回
24 填充 fill 改变
25 转换为数组 Array.from() ES6新增,将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map
26 转换为数组 Array.of() ES6新增,用于将一组值,转换为数组
27 去重 用set数据结构

总结

修改数组:push/pop/shift/unshift/splice/reverse/sort/fill
创建新数组: slice/map/filter/concat
ES6新增: Array.of() Array.form() Array.prototype.fill()/includes()/find()/findIndex()

增删
arr.push()
arr.pop()
arr.unshift()
arr.shift()
arr.splice()
arr.slice()

遍历
arr.every()
arr.some()
arr.filter()
arr.map()
arr.forEach()

查找
arr.find()
arr.findIndex()
arr.includes()
indexOf()

排序
sort()
reverse()

连接
concat()
join([separator])

去重
new Set(arr)

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 去重
var list = [1,1,1,2,2,3,3,3,4]
var pure =[...new Set(list)]
console.log(pure) // [1,2,3,4]

// concat
var num1 = [1, 2, 3],
num2 = [4, 5, 6],
num3 = [7, 8, 9];

var nums = num1.concat(num2, num3);

console.log(nums);
// results in [1, 2, 3, 4, 5, 6, 7, 8, 9]

//join
var a = ['Wind', 'Rain', 'Fire'];
a.join(); // 'Wind,Rain,Fire'