美文网首页
js数组的几个es5、es6方法介绍

js数组的几个es5、es6方法介绍

作者: Mr无愧于心 | 来源:发表于2018-06-12 15:03 被阅读0次

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)

forEach的实现原理,请戳我

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)//产生一个操作后的新数组

map的实现原理,请戳我

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]

相关文章

网友评论

      本文标题:js数组的几个es5、es6方法介绍

      本文链接:https://www.haomeiwen.com/subject/usjleftx.html