ES6中数组在静态方法与实例方法中都有所拓展
目录
1.Array.prototype.find() 查找第一个符合条件的元素
2.Array.prototype.findIndex(); 查找第一个符合条件的元素的下标
3.Array.prototype.includes(); 检查数组是否包含某个元素
4.Array.prototype.fill(); 用来填充数组
5.Array.prototype.keys(); Array.prototype.values(); Array.prototype.entries()
一、静态方法
1.Array.from(); 将类数组对象转换为数组
一般具有指向对象元素的数字索引下标和length属性的对象为类数组对象;
常见的类数组对象有
document.getElementsByClassName()
的返回结果(实际上许多DOM方法的返回值都是类数组);- 特殊变量
arguments
对象
let arr1 = Array.from('hello')
console.log(arr1); // [ 'h', 'e', 'l', 'l', 'o' ]
而在ES5中,我们需要通过 Array.prototype.slice.call('类数组对象') 来转化。
2.Array.of(); 将传入的参数转换为数组
Array.of
总是返回参数值组成的数组。如果没有参数,就返回一个空数组。
Array.of(3, 11, 8) // [3,11,8]
Array.of(3) // [3]
Array.of(3).length // 1
Array.of() // []
二、实例方法
1.Array.prototype.find() 查找第一个符合条件的元素
参数是一个回调函数.
该方法返回第一个满足条件的元素 或者 undefined
let arr=[1,2,3,2,3];
let result=arr.find((value)=>{
return item>2
})
console.log(result) //3
2.Array.prototype.findIndex(); 查找第一个符合条件的元素的下标
参数回调函数
返回第一个满足条件的元素的索引或者-1
let arr=[1,2,3,2,3];
let result=arr.findIndex((value)=>{
return value>2
})
console.log(result) //2 索引
3.Array.prototype.includes(); 检查数组是否包含某个元素
返回true/false
let arr = [1,2,3,4,5];
console.log(arr.includes(8)) //false
4.Array.prototype.fill(); 用来填充数组
console.log(new Array(5).fill(8)) //[ 8, 8, 8, 8, 8 ]
5.Array.prototype.keys(); Array.prototype.values(); Array.prototype.entries()
Array.prototype.keys();
Array.prototype.values();
Array.prototype.entries()
let arr = [2, 3, 4, 5, 6, 2];
let keys=arr.keys();
let values = arr.values();
let entries = arr.entries();
console.log(keys, values, entries);
//keys,values,entries变量当前是迭代器对象,
// 迭代器对象实现了Iterator接口,只要有实现了Iterator接口就可以for-of遍历
通过for-of循环,循环出数组的索引
for(let i of keys){
console.log(i)
} //0 1 2 3 4 5
通过for-of循环,循环出数组的索引
for(let v of values){
console.log(v)
} //2 3 4 5 6 2
同时输出数组的索引和内容
for(let e of entries){
console.log(e)
}
//[ 0, 2 ]
[ 1, 3 ]
[ 2, 4 ]
[ 3, 5 ]
[ 4, 6 ]
[ 5, 2 ]