第二课:ES5中新增的方法(一):数组方法(2021/4/15)

一、数组方法

迭代(遍历)方法:
forEach()、map() 、filter()、some()、every()

  1. forEach()
    注意:遇到了return false并不会终止循环
// array.forEach ( function (currentvalue,index,arr))
// currentValue:数组当前项的值
// index:数组当前项的索引
// arr:数组对象本身


var arr = [1,2,3,4,5];

var sum = 0;

// 计算总和
arr.forEach(function(item,index,arr){
      console.log('当前元素:' + item);
      console.log('当前索引:' + index);
      console.log('数组本身' + arr);
      sum += item;
})

console.log(sum);
  1. map()
// array.map(function(currentValue,index,arr))

map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

// currentValue:数组当前项的值
// index:数组当前项的索引
// arr:数组对象本身

arr = [1,2,3,4,5,6];

var newArr = arr.map(function(item,index,arr){
        return item * 2
})

console.log(newArr)  //[ 2, 4, 6, 8, 10, 12 ]

注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。

  1. filter()
    注意:遇到了return false并不会终止循环
// array.filter(function (currentvalue, index,arr))

// filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素,主要用于筛选数组

// 注意它直接返回一个新数组

// currentValue:数组当前项的值
// index:数组当前项的索引
// arr:数组对象本身

var arr = [12,23,34,41,53];

// 返回大于30的数据:

var newArr= arr.filter(function(item,index,arr){
        return item > 30
})

console.log(newArr);
  1. some()
    注意:遇到了return true会终止循环
// array.some (function (currentvalue, index,arr))

// some() 方法用于检测数组中的元素是否满足指定条件.通俗点查找数组中是否有满足条件的元素。

// 注意它返回值是布尔值,如果查找到这个元素,就返回true,如果查找不到就返回false。

// 如果找到第一个满足条件的元素,则终止循环不再继续查找。

// currentValue:数组当前项的值
// index:数组当前项的索引
// arr:数组对象本身

arr = [1,2,3,4,5,6];

var flag = arr.some(function(item,index,arr){
        return item >13
})

console.log(flag) // false
  1. every()
array.every(function(currentValue,index,arr))

// every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。

// every() 方法使用指定函数检测数组中的所有元素:

// 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
// 如果所有元素都满足条件,则返回 true。
// 注意: every() 不会对空数组进行检测。
// 注意: every() 不会改变原始数组。

// currentValue:数组当前项的值
// index:数组当前项的索引
// arr:数组对象本身

arr = [2,3,4,5,6];

var flag = arr.every(function(item,index,arr){
        return item > 2
})

console.log(flag)  // false

区别:
// 0.forEach()方法不会返回执行结果,而是undefined。也就是说,forEach()会修改原来的数组。而map()方法会得到一个新的数组并返回
// 1. map是每一个值通过函数内部处理之后,再返回一个全新的数组内容的
// 2. filter 是查找满足条件的元素,返回的是一个数组,而且是把所有满足条件的元素返回回来。
// 3. some 是查找满足条件的元素是否存在,返回的是一个布尔值。如果查找到第一个满足条件的元素就终止循环。
// 4. every是查找所有元素是否满足指定的条件,返回的是一个布尔值。如果查找到第一个元素不满足条件的元素就终止循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值