Array常用方法

一、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的

你可能感兴趣的:(Array常用方法)