添加元素
js常用的数组添加元素方法有push,unshift(两个方法都改变原数组)
//arr.push()向数组末尾添加元素,并返回数组的新长度
let arr = [1, 2, 3]
let result=arr.push(4)
console.log(arr);//[1,2,3,4]
console.log(result)//4
//arr.unshift()向数组末尾添加元素,并返回数组的新长度
let arr = [1, 2, 3]
let result=arr.unshift(0)
console.log(arr);//[0,1,2,3]
console.log(result)//4
删除元素
数组常用的删除元素方法有:splice(改变原数组),slice()
splice(index,howmany,item1...itemX)
index,必选参数,要删除数组元素的下标,如果是负数,则表示倒数第几个,-1表示数组的最后一个元素
howmany,可选参数,表示要删除的个数,为空时,则表示删除从目标元素下标到数组末尾
item1...itemX 可选参数,向数组插入元素(向index位置插入)
//splice(i) 当参数只有一个时,表示删除数组下标为i及其以后的元素,如果是负数,则表示倒数第几个
//splice()返回结果就是删除掉的元素,该方法改变原数组
let arr =[0,1,2,3,4]
let msg = arr.splice(2)
console.log(arr); //[0,1]
console.log(msg); //[2,3,4]
//splice(),有两个参数时,第一个参数表示删除数组元素的下标,第二个是 个数(为0,表示不删除)
let arr =[0,1,2,3,4]
let msg = arr.splice(2,1)
console.log(arr); //[0,1,3,4]
console.log(msg); //[2]
//splice() 三个或三个以上参数时,这些参数则进行插入数组(在删除元素下标插入)
let arr =[0,1,2,3,4]
let msg = arr.splice(2,1,'hello','hi')
console.log(arr);//[0,1,'hello','hi',3,4]
console.log(msg);[2]
slice(start,end)
start 必选参数,规定从何开始进行切割,如果是负数,则表示从数组尾部开始算起,-1表示数组的最后一个元素
end 可选参数
该方法不会改变原数组,用于切割下标从start(包括)到end(不包括)的数组,返回结果是一个新数组
let arr = [0,1,2,3]
let arr2 = arr.slice(1,3)
console.log(arr);//[0,1,2,3] 原数组没有发送变化,不改变原数组
console.log(arr2);//[1,2]
该方法也可以进行字符串切割
数组反转
reverse() 该方法改变原数组
let arr = [0,1,2,3]
arr.reverse()
console.log(arr); //[3,2,1,0]
数组排序
sort()该方法改变原数组
let arr=[3,1,6,5,7]
arr.sort()
console.log(arr);//[1,3,5,6,7] 默认是升序排序
sort()方法可以接收一个比较函数,用于决定是升序还是降序
let arr=[3,1,6,5,7]
arr.sort(
function(a,b){
return a-b
}
)
console.log(arr);//[1,3,5,6,7] 升序排序
let arr=[3,1,6,5,7]
arr.sort(
function(a,b){
return b-a
}
)
console.log(arr);//[7,6,5,3,1] //降序排序
还可以根据元素的属性值来进行排序
const arr=[
{name:'zs',age:18},
{name:'ls',age:22},
{name:'ww',age:20}
]
function sortByAge(property){
return function(a,b){
return a[property] - b[property] //按照属性来排序,此时是升序
}
}
//[{name: 'zs', age: 18},{name: 'ww', age: 20},{name: 'ls', age: 22}]
console.log(arr.sort(sortByAge('age')));
转字符串方法
一、toString()(不会改变原数组)
js中的toStrig()方法能把数组转换为字符串,并且元素之间用 ',' 隔开
let arr =['喵喵','火花','水蓝蓝']
let str=arr.toString()
console.log(str); //输出字符串"喵喵,火花,水蓝蓝"
二、join()(不会改变原数组)
let arr =['喵喵','火花','水蓝蓝']
let str=arr.join()
console.log(str); //输出字符串"喵喵,火花,水蓝蓝"
注意,join()方法可以传参数,可以不传,如果不传,默认将数组之间的元素用 "," 隔开,类似与toString(),当然你可以规定分割符
let arr =['喵喵','火花','水蓝蓝']
let str=arr.join("*")
console.log(str); //输出字符串"喵喵*火花*水蓝蓝"
数组过滤
es6中新增数组过滤方法
let arr = [1,2,3,14,15]
//1.current——当前值 2.index——当前值下标 3.array——整个数组
let arr2 = arr.filter((current,index,array)=>{
return current < 10
})
console.log(arr)//[1,2,3,14,15]
console.log(arr2)//[1,2,3]