【JavaScript笔记05】遍历方法小结

ES6中有六种方法遍历数组(除了最原始的for循环遍历),而且它们都不会改变原始数组,下面总结一下。

一、forEach

数组的元素作为回调函数的参数传到函数内部使用。

let list = ['jjy','aaa','bbb']
list.forEach((a)=>{
  console.log(a)
})

注意没有返回值。

二、map

map将数组映射成另一个数组,用返回值的形式。

可以用于对原数组中的元素进行一些处理后返回一个新数组。

let list = [1,2,3]
let res = list.map(a=>{
  return a * 2
})
console.log(res)  //[2,4,6]

或者是需要将一个对象数组中某个属性的值提取出来。

var person = [
  {name:"jjy",age:23},
  {name:"aaa",age:18}
];
var age = person.map(function(p){
    return p.age;
})
console.log(age);//[23,18]

forEach和map有点类似,但前者没有return,后者需要把元素return出来从而形成一个新数组。

三、filter

顾名思义就是从数组中找出符合条件的元素。

let list = [10,20,30,50,80]
let res = list.filter(a => {
  return a>25
})
console.log(res) //[30,50,80]

和map一样需要有一个变量接收结果。

四、find

返回通过测试的数组的第一个元素的值,似乎和filter差不多,但这个只返回第一个符合条件的值。

let person = [
  {name:"jjy",age:23},
  {name:"wjh",age:24},
  {name:"wjh",age:15},
  {name:"sam",age:13},
  {name:"heng",age:119}
];
let res = person.find(a => {
  return a.name == 'wjh'
})
console.log(res)  // { name: 'wjh', age: 24 }

filter返回的是一个数组,find返回的是第一个匹配的值

五、every & some

  • every:判断数组中是否每个元素都满足指定条件(所有)

  • some:判断数组中没有存在满足指定条件的元素(存在)

let person = [
  {name:"jjy",age:23},
  {name:"wjh",age:24},
  {name:"wjh",age:15},
  {name:"sam",age:13},
  {name:"heng",age:119}
];

let every = person.every(a => {
  return a.age > 24
})
let some = person.some(a => {
  return a.age >24
})
console.log(every,some)  // false true

六、reduce

reduce()第一个参数接收一个方法作为累加器,数组中的每个值(从左往右)合并,最终成为一个值。

第二个参数则接受方法的初始化值,如下

let list = [10,20,30]

let res = list.reduce((sum,num)=>{
  return sum + num
},0)
console.log(res)//60

每次遍历的数在方法的第二个参数,即num里,而sum的初始化为0,每次遍历都会将num加到sum上,最后返回sum的最终值。

第二个参数除了0,还可以是数组等等,对应不同的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值