1.join
Array.json()方法将数组中所有元素都转化为字符串并连接在一起(默认逗号)
返回生成的字符串, 原数组不改变
例:
var a = [1 , 2, 3];
a.join() // =>"1,2,3"
a.join("_") // =>"1_2_3"
2.reverse
Array.reverse()方法将数组中的元素颠倒顺序
返回逆序的数组, 原数组改变
例:
var a = [1, 2, 3];
a.reverse().join() // =>"3,2,1" 并且现在a是[3,2,1]
3.sort
Array.sort()将数组中的元素排序, 无参时, 以字母表顺序排序
返回排序后的数组, 原数组改变
4.concat
Array.concat()方法创建一个数组, 用于连接数组, 不会递归扁平化数组
返回创建的新数组, 不修改调用的数组
例:
var a = [1,2,3];
a.concat(4, 5) // 返回[1,2,3,4,5]
a.concat([4,5], [6,7]) //返回[1,2,3,4,5,6,7]
a.concat(4,[5,[6,7]]) //返回[1,2,3,4,5,[6,7]]
5.slice
两个参数指定切割片段的开始和结束位置
返回指定数组的一个片段或子数组, 原数组不改变
例:
var a = [1,2,3,4,5];
a.slice(0,3); // 返回 [1,2,3]
a.slice(3); //返回 [4,5]
a.slice(1,-1) //返回 [2,3,4]
a.slice(-3,-2) //返回 [3]
6.splice
插入或删除元素的通用方法, 第一个参数指定起始位置, 第二个参数指定删除元素个数, 紧随其后的任意个数的参数指定了需要插入到数组中的元素
返回由删除元素组成的数组, 修改原数组
例:
var a = [1,2,3,4,5,6,7,8];
a.splice(4); // 返回[5,6,7,8]; a是[1,2,3,4]
a.splice(1,2) //返回[2,3]; a是[1,4]
a.splice(1,1) //返回[4]; a是[1]
var a = [1,2,3,4,5];
a.splice(2, 0, 'a', 'b') //返回[]; a是[1, 2, 'a', 'b', 3, 4, 5]
a.splice(2, 2, [1, 2], 3) //返回['a', 'b']; a是[1, 2, [1, 2], 3, 3, 4, 5]
7.push、pop、unshift、shift
push 数组尾部添加元素 ,返回新数组长度
pop 数组尾部删除元素, 返回删除元素
shift 删除数组第一个元素, 返回删除元素
unshift 数组头部添加元素, 返回新数组长度
原数组发生改变的方法: reverse()、 sort()、splice()、push()、pop()、unshift()、shift()
原数组不发生改变的方法: join()、 concat()、 slice()
es5中的数组方法
1.forEach
2.map
返回新数组,不修改原数组, 如果调用的是稀疏数组, 返回也是稀疏数组
3.filter
返回稠密数组
arr.filter(()=>{return true}) //压缩稀疏数组的空缺
原数组不改变
4.every和some
返回true或者false
5.reduce和reduceRight
使用指定的函数将数组元素进行组合, 生成单个值
6.indexOf和lastIndexOf
搜索整个数组中具有给定值的元素, 第一个参数是需要搜索的值, 第二个参数指定从哪里开始搜索
返回找到的第一个元素的索引, 如果没有找到就返回-1