JS数组中的迭代方法

最近用到的数组迭代方法有点多,特此总结一下。

共有的特点:参数都是回调函数,回调函数中的第一个参数是value,第二个参数是index,都会遍历数组

1、forEach

        forEach的主要作用就是遍历数组,比如下面我有一个数组,可以使用forEach遍历,但是一个最大的缺点就是无法停止循环,只能加入一些条件取出特定的值。没有返回值

let arr = ["web", false, 20, 30, 90, 80];


 arr.forEach((value, index) => {
        console.log(index);
        console.log(value);
    })

2、some

        some方法返回值是布尔类型,判断数组中的元素是否满足条件,如果有一个满足就返回true,否则返回false。

let array = [11, 22, 33, 44, 55, 66];

let flag1 = array.some(function (value, index) {
    return value >= 33;
  })

console.log(flag1) //true

3、every

  every方法返回值是布尔类型,判断数组中的元素是否满足条件,如果全部满足返回true,否则返回false。

let array = [11, 22, 33, 44, 55, 66];

let flag2 = array.every(function (value, index) {
    return value >= 33;
  })

console.log(flag2) //false

4、map(重点)

        他的返回值是一个新数组,不会改变原数组,新数组的值是原始数组调用函数处理后的值,看代码:

let array = [11, 22, 33, 44, 55, 66];


function Twice(num){
    return num*2
}


let flag3 = array.map(Twice)

console.log(flag3) 

有一个很经典的面试题,是这样的

var arr = ['1', '2', '3'].map(parseInt)
console.log(arr) // 输出的结果是?

首先我们搞清楚第一行代码干了什么?使用map对数组进行遍历,然后调用了parseInt方法对数组元素做了变化,返回一个arr新数组,第二步就是搞清楚parseInt方法,parseInt接收两个参数第一个是string,就是要转化的字符串,第二个是radix,要转化为几进制的数,所以上面的执行步骤就是

parseInt('1', 0), parseInt('2', 1), parseInt('3', 2)

所以结果是

[1, NaN, NaN]  //返回一个数组,结果要写成数组的形式

 5、filter(重点)

        从名字上就可以看出是过滤元素,没错,根据条件过滤元素,返回一个新的数组,看代码

var array = [11, 22, 33, 44, 55, 66];

var arr = array.filter(function (v, i) {
    return v >= 33;
  })
  console.log(arr);

arr的中的元素是全部大于33的

6、reduce

        这个是计算数组元素相加后的值(从左到右),看代码

var array = [11, 22, 33, 44, 55, 66];

var arr = array.reduce(function (v, i) {
    return Math.pow(v, 2);
  })
  console.log(arr);

最终的结果是每个元素的平方相加后的值。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值