Array.from: 将声明的对象转为数组
1
2
let array = {0:1,1:2,2:3,length:3}
Array.from(array) // [1,2,3]
区别于扩展运算符:…只能把拥有迭代器的伪数组转为数组,如arguments、map、set
Array.reduce(): 对数组进行某种操作,加减乘除,最后返回一个值
1
2
3
4
5
6
7
8
let array=[1,2,3,4]
//prev当前值,且会将这次累加结果作为下一次的prev值,current当前值,currentIndex当前索引,array数组
let total=array.reduce((prev,current,currentIndex,array)=>{
return prev+current
})
console.log(total) // 10
第一次循环, prev = array[0], current = array[1], currentIndex = 1;
之后的, prev等于上一次相加的值
传入初始值:**reduce第二个参数可以初始化prev的值**
1
2
3
4
5
let array=[1,2,3,4]
let total=array.reduce((prev,current,currentIndex,array)=>{
return prev+current
},4)
console.log(total) // 14
Array.foreach(): 用于调用数组的每个元素,并将元素传递给回调函数
1
2
3
4
Array.forEach(function(currentValue, index, arr), thisValue)
1.没有返回值,总是返回undefined,不能终止循环, 可以用throw Error()来终止
2.当数组中元素是值类型,forEach绝对不会改变数组;当是引用类型,则可以改变数组
3.不支持链式操作
Array.map(): 数组返回成一个映射后的数组
1
2
let arr = [1,2,3].map(item => item+1)
console.log(arr) // [2,3,4]
Array.every(): 数组都满足某条件则返回true
,否则返回false
1
2
3
4
5
let array=[1,2,3,4]
let total=array.every(item=>{
return item < 0
})
console.log(total) // false
Array.find(): 返回第一个满足条件的值,若找不到则返回undefined
; array.findIndex(): 返回第一个满足条件的值的位置,若找不到则返回-1
1
2
3
4
5
let array=[1,2,3,4]
let total=array.find(item=>{
return item>2
})
console.log(total) // 3
Array.some(): 是否有其中一个值满足条件,如果是则返回true
,如果不是则返回false
1
2
3
4
5
let array=[1,2,3,4]
let total=array.some(item=>{
return item>2
})
console.log(total) // true
Array.filter(): 过滤掉返回为false的项,最后重新生成一个数组
1
2
3
4
5
6
let array=[1,2,3,4]
let total=array.filter(item=>{
return item>2
})
都为false,显示空数据 []
console.log(total) // [3,4]
Array.includes(): 用来判断一个数组是否包含一个指定的值,如果是返回 true
,否则false
。
1
2
3
let array=[1,2,3,4]
let total=array.includes(2)
console.log(total) //true
Array.flat(Infinity): 多维数组扁平化
1
2
3
4
5
6
Infinity 为扁平化的维度
var arr = [1,2,3,[6,[4,5]]];
arr.flat(); // [1,2,3,6,[4,5]]
arr.flat(2); // [1,2,3,6,4,5]
arr.flat(Infinity); // [1,2,3,6,4,5]
do…while: 当满足条件执行do语块
1
2
3
4
let flag=5;
do{
flag--;
}while(flag)
for…in
1
2
3
4
for (let property in object) {
console.log(property) //property name(key)
console.log(object[property]) //property value
}
for…of
1
2
3
for (let v of object) {
console.log(v) // object[i]
}
Array.sort Cannot assign to read only property '0' of object '[object Array]'
: Array.slice( ).sort( )