1、push
- 向数组末尾添加一个或多个元素
- 返回新数组的长度
-
let arr=[1,2,3]
arr.push(4,5)
console.log(arr)//[1, 2, 3, 4, 5]
2、unshift()
- 向数组的开头添加一个或多个元素
- 返回新数组的长度
-
3、pop
- 删除数组最后一个元素,如果数组为空,则不改变数组,返回undefined
- 返回被删除的元素
-
let arr=[1,2,3,4,5]
arr.pop()
console.log(arr)
//[1, 2, 3, 4]
4、shift()
- 把数组的第一个元素删除,若空数组,不进行任何操作,返回undefined
- 返回第一个元素的值
-
let arr=[1,2,3,4,5]
arr.shift()
console.log(arr)
//[ 2, 3, 4,5]
5、从数组中连续删除、插入数据:splice()
- splice(1,2,3),1:起始下标,2:连续删除多少项(为0则不删除),
3:插入的数据(为0则不插入) - 返回被删除的元素
-
let arr=[1,2,3,4,5]
arr.splice(1,1,"2")
console.log(arr)
//[1, "2", 3, 4, 5]
6、 数组转字符串:join()
- 把数组中所有元素放入一个字符串
- 返回字符串
-
let arr=[1,2,3,4,5]
console.log(arr.join("+"))
//"1+2+3+4+5"
7、数组排序:sort()
- 对数组元素进行排序
- 返回该数组
-
let arr=[2,1,3,5,4]
console.log(arr.sort())
//[1, 2, 3, 4, 5,]
8、数组颠倒:reverse()
- 颠倒数组中元素的顺序
- 返回该数组
-
let arr=["Mike","Doinb","Uzi","Mary","Faker","ClearLove"] console.log(arr.sort().reverse())
// ["Uzi", "Mike", "Mary", "Faker", "Doinb", "ClearLove"]
9、数组抽取:slice()
- slice(1,2),1:起始下标,2:结束位置(若为0则返回下标后所有元素)
- 从已有的数组中返回选定的元素
- 返回一个新数组
-
let arr=[1,2,3,4,5]
console.log(arr.slice(2))
//[3, 4, 5]
let arr=[1,2,3,4,5] console.log(arr.slice(2,4)) // [3, 4] |
10、数组合并:concat()
- 连接两个或多个数组
- 返回被连接数组的一个副本
-
let arr1=["RNG","EDG"]
let arr2=["Uzi","ClearLove"]
let arr3=["TOP","SKT"]
console.log(arr1.concat(arr2,arr3))
// ["RNG", "EDG", "Uzi", "ClearLove", "TOP", "SKT"]
11、数组转为字符串:toString()
- 把数组转为字符串
- 返回数组的字符串形式
-
let arr=[1,2,3,4,5]
console.log(arr.toString())
//1,2,3,4,5
(ES5中数组常用方法)
1、forEach()
从头至尾遍历数组,为每个元素调用指定的函数。
forEach有三个参数(数组元素,索引,数组本身)。
const data = [1, 2, 3, 4, 5]; //要求和的数组 let sum = 0; //初始为0 data.forEach( value => sum+=value) //将每个值累加到sum上 console.log(sum) //=>15 data.forEach((v,i,a)=> a[i]=v+1) console.log(data) //=>[2,3,4,5,6] |
注:forEach无法在所有元素传递给调用函数之前终止遍历(无法使用break),如果要使用就使用try。
返回值:无。
forEach无法通过正常流程(如break)终止循环,但可通过抛出异常的方式实现终止循环
var arr = [1,2,3,4,5,6] 将只输出 1 2 注意:在catch语句块中加了if(e.message === 'End Loop') throw e这句代码会在控制台报一个错误,这个错误是try语句块中抛出的 如果不想看到这个报错,将if(e.message === 'End Loop') throw e这一句删除就行 |
2、map(映射)
map()方法将调用的数组每个元素传递给指定的函数,并返回一个数组。
let a=[1,2,3] let b=a.map(x) return x*x ) console.log(b) //=>[1,4,9] /=============================/ let a=[1,2,3] let b=a.map(i=> return i ) console.log(b) //=>[1,2,3] 注:map返回的是新数组,不修改调用的数组。如果是稀疏数组,返回的也是相同稀疏数组。 返回值:有,新的数组。 |
3、filtter(过滤)
filtter()遍历数组,过滤出来符合条件的元素,放到一个新数组里面,如果没有就返回空。
let a=[1,2,3,4,5] let b=a.filter(x=> return x<3 ) console.log(b) //=>[1,2] let c=a.filter(x=> return x>5 ) console.log(c) //=>[] |
4、every(所有)和some(存在)
every()方法就像数学中的“所有”,针对所有符合条件的返回true否则返回false。
let a=[1,2,3,4,5] let b=a.every(x=> return x<3) console.log(b) //=>false let c=a.every(x=> x<6) console.log(c) //=>true |
some()方法就像数学中的“存在”,但数组中至少存在一个元素符合判定条件则返回true,
否则false(一个都没有)。
let a=[1,2,3,4,5] let b=a.some(x=> return x<3 ) console.log(b) //=>true let c=a.some(x=> return x<1 ) console.log(c) //=>false |
:一旦every()和some()确定该返回什么值它们就会停止遍历数组。
every()在判定数组时,第一次返回false后就返回false,如果判定一直返回true,他将遍历整个数组。
some()相反,第一次返回true就返回true,如果判定为false就遍历整个数组。
按照数学惯例,在空数组上调用时,every()返回true,some()返回false。
返回值:true或者false。
5、reduce()
6、indexOf()和lastIndexOf()
indexOf()和lastIndexOf()搜索整个数组中具有给定值的元素,返回找到的第一个元素的索引或者如果没有找到就返回-1。
indexOf()从头至尾搜索,lastIndexOf()则相反。
let a=[1,2,3,4,5,4,3,2,1] let b= a.indexOf(3) let c= a.lastIndexOf(3) console.log(b) //=>2 console.log(c) //=>6 |
注:indexOf()和lastIndexOf()不接受函数作为其参数。
返回值:第一个元素的索引。
是否会改变原数组
会改变:push(),pop(),shift(),unshift() ,splice(),sort(),reverse()。
不变:concat(),split(),slice()。