ES6数组方法

前两天学习了一下ES6中数组常用的一些方法,总结了一下它们的用法,主要有以下这八个:

1、数组遍历方法(for、forEach)

let arr = [1, 2, 3, 4, 5];
/* 第一种遍历方法 */
for (var i = 0; i < arr.length; i++) {
   console.log(arr1[i]);
}
/* 第二种遍历方法 */
for (var j in arr) {
   console.log(arr[j]);
}
/* 第三种遍历方法 */
/**
*forEach()方法接收一个回调函数,参数有三个,分别是每一项,当前项的索引、以及原数组。forEach()函数没有返回值。
*/
arr.forEach(function (a, b, arr) {
    console.log('数值' + a, '下标' + b, '数组' + arr);
/* 
a 表示数组每一项
b 表示数组每一项下标
arr 表示原始数组(一般不使用)
*/
})

2、数组方法map映射

map()不改变原数组,可以在函数内部做一些操作,返回处理后的数组。

需要注意的是:调用map()一定要把结果 return出来。如果没有 return, 则返回undefined。

let arr = [1,2,3,4]
 // item:当前项,index:当前索引,arr:原数组
const result  = arr.map((item, index, arr)=> {
      if(item >2) {
        return item
      }
    })
    console.log(result);//[3,4]

示例:判断数组所对应的的状态是否及格

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
    </body>
    <script>
        let scroe = [12, 77, 88, 99, 33, 100, 59];
        let result = scroe.map(item => item >= 60 ? '及格' : '不及格');
        console.log(scroe)//不改变原数组
        console.log(result)
    </script>
</html>

3、filter()

filter()方法:用于过滤的方法,但是也可以遍历数组,它返回符合条件的新数组,不会影响原数组。

let person = [{
  name:'zhangsan',
  age:26
},{
  name:'lisi',
  age:28
},{
  name:'wangwu',
  age:23
}]
let age = person.filter(item=> item.age === 23)
console.log(age)// [{  age: 23,  name: "wangwu"}]
//
let arr = [1,2,3,4]
 // item:当前项,index:当前索引,arr:原数组
const result = arr.filter((item, index, arr) => {
   return item <3
})
console.log(result); //  [1, 2] 

4、.reduce()

reduce()方法,一般用于求和,它是一个比较特殊的方法,一共有四个参数。 reduce()方法最重要的作用就是累加的操作,将数组的每个元素从左往右依次执行累加器,返回最终的处理结果。不会影响原数组。

 let arr = [1,2,3,4]
// sum:上一次的值,item:当前值,index:当前索引,arr:原数组
const result = arr.reduce((sum, item, index, arr) => {
  return sum += item
  }, 0)
// 这里的0,是一个初始值,意思是从0开始计算
// 因为我这里做的是加法运算,所以返回的是累加的和
 console.log(result); // 10

对象里的属性求和

let person =[{
  name:'zhangsan',
  age:26
},{
  name:'lisi',
  age:28
},{
  name:'wangwu',
  age:23
}]
let age = person.reduce((num, item) =>{
 return num+ item.age;
}, 0);
console.log(age)//77

5、.find()

find()方法,用于查找数组中是否有满足条件的元素,当找到第一个满足条件的元素时,则直接返回该元素。如果都不满足条件,则返回 undefined。不会改变原数组。

let person = [{
  name:'zhangsan',
  age:26
},{
  name:'lisi',
  age:28
},{
  name:'wangwu',
  age:23
}]
let age = person.find(item => item.age === 23);
console.log(age)//{  age: 23,  name: "wangwu"}

6、.some()

检测数组中的元素是否满足某个条件。

  • 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测

  • 如果没有满足条件的元素,则返回false。

let person =[{
  name:'zhangsan',
  age:26
},{
  name:'lisi',
  age:28
},{
  name:'wangwu',
  age:23
}]
let age = person.some(item => item.age > 28);
let age2 = person.some(item => item.age > 26);
console.log(age)//false
console.log(age2)//true

7、.every()

检测数组所有元素是否都符合某个条件

  • 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。

  • 如果所有元素都满足条件,则返回 true。

let person = [{
  name:'zhangsan',
  age:26
},{
  name:'lisi',
  age:28
},{
  name:'wangwu',
  age:23
}]
let age = person.every(item => item.age > 26);
let age2 = person.every(item => item.age > 22);
console.log(age)//false
console.log(age2)//true

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值