ES5中数组的几个常用方法介绍
1.forEach()
从头至尾遍历数组,为每个元素调用指定函数
var arr = [1,2,3,4,5];
var obj={};
arr.forEach(function(item,index,input){
console.log(item,index,input)
console.log(this)//this指向obj
},obj);
console.log(arr)
2.map()
映射,从头至尾遍历数组,可操作每个元素,并返回新数组,不修改原数组
var arr = [1,2,3,4,5];
var obj={};
let arr2=arr.map(function(item,index,input){
console.log(this)//this指向obj
return item+1;
},obj);
console.log(arr2)//产生一个操作后的新数组
3.filter()
过滤,返回满足条件的元素组成的新数组
a = [5,4,3,2,1];
let a2 = a.filter(function(x){return x<3});
console.log(a2)// =>[2,1]
4.every()
数组 所有元素满足条件就返回true,有一个不满足条件就返回false
a = [5,4,3,2,1];
let eve = a.every(function(x){return x<6});
console.log(eve)//true
let eve2 = a.every(function(x){return x<3});
console.log(eve2)//false
5.some()
数组 所有元素只要有一个满足条件就返回true,都不满足条件就返回false
a = [5,4,3,2,1];
let sm= a.some(function(x){return x<2});
console.log(sm)//true
let sm2= a.some(function(x){return x>5});
console.log(sm2)//false
6.reduce()
累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值
a = [5,4,3,2,1];
let red= a.reduce(function(x,y){
console.log(x);// 5 9 12 14 15
return x + y;//每次的结算结果会当做下次运算的x继续执行
});
console.log(red)//15
ES6中数组的几个常用方法介绍
1.Array.from()
将类数组,还有可遍历(iterable)的对象转为数组,NodeList、arguments、 ES6 新增的数据结构 Set 和 Map
let arr2 = Array.from(likeArray);
ps:类数组转数组的方法
1.[].prototype.slice.call(likeArray,0);
2.[...likeArray]
3.for(var i=0;i=likeArray.length;i++){
arr2.push(likeArray[i])
}
4.let arr2 = Array.from(likeArray);
2.Array.of()
将一组值,转换为数组。
let arr2=Array.of(1,2,3)//[1,2,3]
3.copyWithin()
在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。也就是说,使用这个方法,会修改当前数组。
// 将3号位复制到0号位
[1, 2, 3, 4, 5].copyWithin(0, 3, 4)
// [4, 2, 3, 4, 5]
4.find()
找出 第一个 符合条件的数组成员。
[1, 5, 10, 15].find(function(value, index, arr) {
return value > 9;
}) // 10
5.fill()
使用给定值,填充一个数组。
['a', 'b', 'c'].fill(7)
// [7, 7, 7]
第一个参数为待填充的值,第二和第三参数可选,分别表示填充的起始和结束位置(不包括)。
['a', 'b', 'c'].fill(7,1,2)
//['a', 7, 'c']
6.entries()、keys()、values()
用于遍历数组,可以用for…of循环进行遍历。区别是keys()是对键名的遍历、values是对键值的遍历、entries()是对键值对的遍历。
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);
}
7.includes()
表示某个数组是否包含给定的值 ,返回布尔值
[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false
[1, 2, NaN].includes(NaN); // true ,NaN用includes判断是和自身相等的
8.拓展运算符 ...
数组赋值
let arr1=[1,2,3]
let arr2=[4,5,6]
let arr3=[...arr1,...arr2]//[1,2,3,4,5,6]
网友评论