会改变原数组
reverse(). 数组翻转,即颠倒数组中元素的位置
let a=[1,2,3,4,5]
let b=a.reverse()
b //[5, 4, 3, 2, 1]
a //[5, 4, 3, 2, 1]
返回值是翻转后的数组
sort().对数组中元素进行排序,但是默认排序顺序是根据字符串 Unicode 码点
let a=[1,22,3,24,15]
let b=a.sort()
b //[1, 15, 22, 24, 3]
a //[1, 15, 22, 24, 3]
返回值是排序后的数组
pop().删除数组中的最后一个元素
var a1 = [1, 2, 3, 4];
a1.pop() //4
a1//[1, 2, 3]
返回的是被删除的元素
push().在数组的尾部添加一个或者多个元素
var a1 = [1, 2, 3, 4];
a1.push() //4 如果没有插入的值那么返回的长度是当前数组的原长度
var a1 = [1, 2, 3, 4];
a1.push(1,2,3) //7
a1 //[1, 2, 3,4, 1, 2, 3]
返回的是插入元素后数组的长度
shift().删除数组中的第一个元素
var a1 = [1, 2, 3, 4];
a1.shift() //1
a1 //[2, 3, 4]
返回的是被删除的元素
unshift().在数组的首部添加一个或者多个元素
var a1 = [1, 2, 3, 4];
a1.unshift() //4 如果没有插入的值那么返回的长度是当前数组的原长度
var a1 = [1, 2, 3, 4];
a1.unshift(1,2,3) //7
a1 //[1, 2, 3, 1, 2, 3, 4]
在数组的首部添加一个或者多个元素
splice().具有【增】【删】【改】的功能,具体实例展示👇
//增
var a1 = [1, 2, 3, 4];
a1.splice(2,0,'插入') //[]返回的是空数组
a1 //[1, 2, "插入", 3, 4]
//删
var a1 = [1, 2, 3, 4];
a1.splice(2,1) //[3]返回被删除的元素
a1 // [1, 2, 4] 返回的是删除后剩余的数组元素
//改
var a1 = [1, 2, 3, 4];
a1.splice(2,1,'改') //[3]返回的是被替换删除掉的元素
a1 //[1, 2, "改", 4]
fill().使用给定的值填充一个数组
接受第二个和第三个参数,分别用于指定填充的起始位置和结束位置
//3个参数
var a1= ['a', 'b', 'c']
a1.fill(7, 1, 2) //["a", 7, "c"]
a1 //["a", 7, "c"]
//1个参数
var a1= ['a', 'b', 'c']
a1.fill(7) //["a", 7, "c"]
a1 //[7, 7, 7]
返回值是填充后的数组
不改变原数组
jion().将数组转换成字符串
var a=[1,2,3,4,5]
var b=a.join('-')
b//返回值 "1-2-3-4-5"
a //[1,2,3,4,5]
返回值是转变后的字符串
concoat().合并数组
let a=[1,22,3,24,15]
let c=[1,2,3]
let b=a.concat(c)
a //[1, 22, 3, 24, 15]
b //[1, 22, 3, 24, 15, 1, 2, 3]
c //[1, 2, 3]
返回值是合并生成的新数组
slice().截取数组中的一部分,从开始到结束,截取原则左闭右开(即不包括结束索引),第二个参数可选,不写或大于数组的 length,取之将从开始索引到最后一个参数
let a=[1,22,3,24,15]
let b=a.slice(1,2)
b //22
let a=[1,22,3,24,15]
let b=a.slice(1,1)
b //undefined
let a=[1,22,3,24,15]
let b=a.slice(1)
b //[22, 3, 24, 15]
返回值是截取到的新数组
map().新数组中的每个元素,由原数组中的每一个元素执行相应的函数而来
let a=[1,22,3,24,15]
let b=a.map(item=>item*2)
a //[1, 22, 3, 24, 15]
b //[2, 44, 6, 48, 30]
返回值是新创建的数组
filter().过滤判断条件生成新的数组
let a=[1,2,4,'']
let b=a.filter(item=> item>1)
b //[2, 4]
a //[1, 2, 4, ""]
返回值是过滤符合条件的新数组
every().查询数组中每一个元素是否都匹配条件,如果都匹配返回 true,只要有一个不符合返回 false,如果是空数组,则直接返回 true
let a=[1,22,3,24,15]
let b=a.every(item=>item>15)
b // false
let a=[1,22,3,24,15]
let b=a.every(item=>item>=1)
b // true
a //[1, 22, 3, 24, 15]
let a=[]
let b=a.every(item=>item)
b //true
forEach().没有返回值,不会改变原数组,可以通过此方法循环判断数组中的每一个元素,执行相对应的回调
//forEach
let a=[
{
name:'张三',
order:0
},
{
name:'李四',
order:1
}, {
name:'王五',
order:2
}
]
let obj1Name
a.forEach(item=>{
if(item.order==1){
obj1Name=item.name
}
})
console.log(obj1Name) //李四
//filter
let a=[
{
name:'张三',
order:0
},
{
name:'李四',
order:1
}, {
name:'王五',
order:2
}
]
let obj1Name
obj1Name=a.filter(item=>{
return item.order==1
})
console.log(obj1Name) //[{name: "李四",order: 1}]
reduce().相当于一个累加器,第一个参数表示上一次累计的返回值,第二个参数表示当前的返回值 返回结果是最后累加的总和
const array1 = [1, 2, 3, 4];
const reducer = (prev, curr) => prev + curr;
// 1 + 2 + 3 + 4
console.log(array1.reduce(reducer));
// 10
// 5 + 1 + 2 + 3 + 4
console.log(array1.reduce(reducer, 5));
// 15
find().找出数组中的第一个符合条件的元素,参数为一个回调,所有元素依次执行该回调参数,如果找到第一个返回值为true,那么就直接返回这个符合条件的元素,反之如果找不到符合条件的,那么返回值是undefined
var a1=[1, 4, -5, 10]
a1.find((n) => n < 0) // -5
a1 //[1, 4, -5, 10]
var a1=[1, 4, -5, 10]
a1.find((n) => n == 0) // undefined
a1 //[1, 4, -5, 10]
findIndex().数组实例的 findIndex 方法的用法与 find 方法非常类似。如果找到第一个符合条件的数组成员,则返回索引位置,如果所有成员都不符合条件,则返回-1
//没有符合元素
var a1=[1, 4, -5, 10]
a1.findIndex((n) => n == 0) //-1
a1 //[1, 4, -5, 10]
//有符合元素
var a1=[1, 4, -5, 10]
a1.findIndex((n) => n <0) //2
includes().判断数组中是否包含给定的值
let a1=[1,2,3]
let a2=1
let a3=4
a1.includes(a2) //true
a1.includes(a3) //false
返回值是一个布尔值,如果包含返回 true,反之 false
entries(). keys(). values().用来遍历数组,返回的是一个遍历器对象,可以通过使用 for...of 进行遍历
for (let index of ['a', 'b'].keys()) {
console.log(index);
}
// 0
// 1
for (let elem of ['a', 'b'].values()) {
console.log(elem);
}
// 'a'
// 'b'
for (let [index, elem] of ['a', 'b'].entries()) {
console.log(index, elem);
}
此三种方法遍历时有所区别:
keys是对键的遍历
values是对值的遍历
entries是对键和值一起的遍历
看了一些文章,小结了一下,欢迎指正文本错误