改变原数组
push/pop/shift/unshfit
push:向数组末尾添加一个元素,并返回新的长度,这个方法类似栈中的入栈。
pop:删除并返回数组的最后一个元素,这个方法类似栈中的出栈
shift:删除并返回数组的第一个元素。
unshfit:向数组的开头添加一个或更多元素,并返回新的长度。
splice
作用:用于删除、添加或者替换数组中的某些元素; 返回被删除或被替换元素组成的数组。返回被删除的项
- 参数1:起始位置索引
- 参数2:删除多少项
- 参数3:需要添加的元素
let arr = [10, 20, 30, 40, 50, 80]
arr.splice(2, 3) // [30, 40, 50]
arr.splice(2, 3, 'jack', 'rose') // arr => [10, 20, 'jack', 'rose', 80]
sort / reverse
以上为改变原数组的7种方法,vue2.x版本实现数组响应式监听就是重写了这7种方法。
不改变原数组
concat:数组拼接
返回值:返回拼接后的数组
var a = [1,2,3];
var b = [4,5,6];
var ss = a.concat(b); // [1,2,3,4,5,6]
// concat默认只能展开一层
var res = [30].concat([10, 15], 20, 'hello') // [30, 10, 15, 20, 'hello']
join & toString:数组类型转换:将数组转换成字符串
var a = [1,2,3];
a.toString(); // '1,2,3'
和join方法类似,不同点在于join方法可以传指定的拼接符号
a.join("-") // '1-2-3'
数组遍历
find
filter
some
作用:检测数组中的元素是否存在满足指定条件,返回布尔值
every
作用:检测数组中是否每一项都满足指定条件,返回布尔值
reduce / reduceRight
let arr = [10, 20, 30, 40];
let result = arr.reduce((sum, item, index) => {
return sum + item
}, 0) // 100
map
forEach
indexOf / findIndex / includes
let arr = ['jack', 'zhangsan', 'lisi']
arr.indexOf('zhangsan') // 1
arr.indexOf('rose') // -1
arr.findIndex(v => v == 'zhangsan') // 1
arr.findIndex(v => v == 'rose') // -1
arr.includes('jack') // true