一、pop()、push()、shift()、unshift()、reverse()
pop():删除数组的最后一位,并且返回删除的数据
push():在数组的最后一位新增一个或多个数据,并且返回新数组的长度
shift():删除数组的第一位数据,并且返回新数组的长度
unshift():在数组的首位新增一个或多个数据,并且返回新数组的长度
reverse():将数组的数据进行反转,并且返回反转后的数组,会改变原数组
二、sort()、splice()
sort(callback):默认根据字符串的UniCode码排序,并且返回排过序的新数组
splice(start,num,d1,d2,...):向数组中添加、删除或替换元素,然后返回被删除/替换的元素
let arr = [12,4,31,8,5]
arr.sort()
console.log(arr) // [12, 31, 4, 5, 8]
}
arr.sort((a,b)=>a - b);
console.log(arr) // [4, 5, 8, 12, 31]
三、copyWithin(),fill()
copyWithin(target,start,end):将指定位置的数组项复制到其他位置,会改变原数组
fill(val):使用给定值,填充一个数组,会改变原数组
四、slice()、join()、toString()、concat()
slice(start,end):截取指定位置的数组,并且返回截取的数组,不会改变原数组
join():将数组转为字符串并返回转化的字符串数据,不会改变原来的数组
toString():将数组转换成字符串,类似于没有参数的join()
concat(arr1,arr2,...):合并数组,返回合并数组之后的数组,不会改变原来的数组
五、valueOf()、IndexOf()、lastIndexOf()
valueOf():返回数组的原始值(一般情况下其实就是数组自身)
IndexOf(d,start):从左向右,查询在数组中出现的位置,如果不存在指定的数据,返回-1
lastIndexOf(d,start):从右向左查询在数组中出现的位置,同上
六、数组遍历方法
forEach(callback(item,index,self)):用来遍历数组,没有返回值
let arr = ["a","b","c"];
let a = arr.forEach((item,index,self)=>{
console.log(`${item}--${index}--${self}`) // a--0--a,b,c
})
console.log(a) // undefined
map(callback(item,index,self)):映射,返回callback的返回值组成的新数组
let arr = ["a","b","c"];
let a = arr.map((item,index,self)=>{
console.log(`${item}--${index}--${self}`) // a--0--a,b,c
return `${item}-${index}`
})
console.log(a) // ["a-0", "b-1", "c-2"]
filter(callback(item,index,self)):过滤,返回callback的返回值为true的item组成的新数组
let arr = [1,2,3,4,5];
let a = arr.filter((item,index,self)=>{
console.log(`${item}--${index}--${self}`) // 1--0--1,2,3,4,5
return item > 3
})
console.log(a) // [4, 5]
every(callback(item,index,self)):找假,callback的所有返回值为true,则返回true,否则false
let arr = [1,2,3,4,5];
let a = arr.every((item,index,self)=>{
console.log(`${item}--${index}--${self}`) // 1--0--1,2,3,4,5 (一旦返回false则会终止遍历)
return item < 3
})
console.log(a) // false
some(callback(item,index,self)):找真,callback的返回值存在true,则返回true,否则false
let arr = [1,2,3,4,5];
let a = arr.some((item,index,self)=>{
console.log(`${item}--${index}--${self}`) // 1--0--1,2,3,4,5 (一旦返回true则会终止遍历)
return item > 3
})
console.log(a) // true
reduce(callback(prev,item,index,self),val):迭代数组的所有项,返回的最终结果
reduceRight(callback(prev,item,index,self),val):从数组的最后一项开始,同上
let arr = [1,2,3,4,5];
let a = arr.reduce((pre,item,index,self)=>{
console.log(`${pre}--${item}--${index}--${self}`)
// 0--1--0--1,2,3,4,5
// 1--2--1--1,2,3,4,5
// 3--3--2--1,2,3,4,5
// 6--4--3--1,2,3,4,5
// 10--5--4--1,2,3,4,5
return pre + item
},0) // 初始值不传少执行一次遍历
console.log(a) // 15
find(callback(prev,item,index,self)):查找,返回callback返回true的第一个item || undefined
findeIndex(callback(prev,item,index,self)):查找,返回callback返回true的第一个index
let arr = [1,2,3,4,5];
let a = arr.find((item,index,self)=>{
console.log(`${item}--${index}--${self}`) // 1--0--1,2,3,4,5 (一旦返回true则会终止遍历)
return item > 3
})
console.log(a) // 4
entries()、keys()、values():都返回一个遍历器对象,都可以用 for...of 循环进行遍历
let a = ['a', 'b', 'c']
for (let index of a.keys()) {
console.log(index); // 0 、 1 、 2
}
for (let item of a.values()) {
console.log(item); // a 、 b 、 c
}
for (let [index,item] of a.entries()) {
console.log(index,item); // 0 a 、 1 b 、 2 c
}
七、Array.from()、Array.of()
Array.from(arr,callback):DOM 操作返回的 NodeList 、函数内部的 arguments 对象。Array.from都可以将它们转为真正的数组(只要一个对象有length,Array.from就能把它变成一个数组)callback类似于map的