ES6:数组的扩展
1、判断数组
● Array.isArray() 判断该值是否是一个数组,返回一个布尔值
const arr = [1, 2, 3, 4, 5, 6]
console.log(Array.isArray(arr)) // true
2、创建数组
● Array.of() 创建一个新数组
const arr2 = Array.of(1,2)
console.log(arr2) // [1, 2]
3、转换数组
● Array.from()方法可以将可迭代对象转换为新的数组。
const str = 'hello world'
const arr3 = Array.from(str)
console.log(arr3) // ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
const obj = {
0: '张三',
1: '李四',
2: '王五',
'length': 3
}
const arr4 = Array.from(obj)
console.log(arr4)
4、填充数组
● arr.fill(value,start,end)
const arr5 = new Array(10).fill(0)
console.log(arr5) // [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
const arr6 = [1, 2, 3, 4]
console.log(arr6.fill(8)) // [8, 8, 8, 8]
console.log(arr6.fill(10, 1, 2)) // [1, 10, 3, 4]
5、数组扁平化
● arr.flat() 数组扁平化,即将多维数组转化为一维数组
let arr7 = [1, 2, [3, 4], [5, 6], [7, 8, [9]]]
const result = arr7.flat(Infinity)
console.log(result) // [1, 2, 3, 4, 5, 6, 7, 8, 9]
6、判断元素是否存在
● arr.includes()方法,是查看数组中是否存在这个元素,存在就返回true,不存在就返回false
let arr8 = [1, 33, 44, 22, 6, 9]
let ary = arr.includes(22)
console.log(ary) // true
7、查找元素
● arr.find()方法,是查找数组中符合条件的第一个元素,直接将这个元素返回出来
let arr9 = [1, 33, 44, 2, 6, 9]
let a = arr8.find(v => v > 10)
console.log(a) // 33
● arr.findIndex() 用来查找数组中符合条件的元素的索引,语法格式为;
let arr10 = [1, 33, 44, 2, 6, 9]
const b = arr10.findIndex(value => {
return value % 2 === 0
})
console.log(b) // 2
8、map()、filter()、forEach()、some()、every()
● arr.map() 要利用原数组经过运算后的数组,或者从对象数组中拿某个属性
let arr = [1, 2, 3, 4, 5]
const res = arr.map(item => item * 2)
console.log(res) // [2, 4, 6, 8, 10]
● arr.filter() 是将符合挑选的筛选出来成为一个新数组,新数组不会影响旧数组。
let arr = [24,11,36,2,15]
let newArr = arr.filter(function(value,index,array) {
return value % 2 === 0
})
console.log(newArr) // [24,36,2]
● arr.forEach()方法,是循环遍历数组中的每一项,没有返回值
let arr = [1,33,44,2,6,9]
let a1= []
arr.forEach((v, i)=>{
if (v > 10) {
a1.push(arr[i])
}
})
console.log(a1) [33,44]
● arr.some() 只要有一个元素满足就返回true,所有都不满足返回false。
● arr.every() 数组所有值都满足才会返回true,有一个不满足返回false。
9、遍历数组
● arr.keys() 遍历数组的键
● arr.values() 遍历数组的值
● arr.entries() 同时遍历数组的键和值
let arr12 = [1, 2, 'hello', 10]
for (let item of arr12.keys()) {
console.log(item)
}
for (let item of arr12.values()) {
console.log(item)
}
for (let item of arr12.entries()) {
console.log(item)
}