ES5数组家的新函数

01======查找元素=

 var i=arr.indexOf("元素值",starti)
   在arr中,从starti位置开始,找下一个匹配的元素的位置i
   如果找到,返回元素的位置
   如果找不到,返回-1

02======判断: 判断数组中的元素是否符合要求 every和some=

  1. 判断数组中的元素是否都符合要求:
var bool=arr.every(function(elem, i, arr){
       //回调函数: 自动在每个元素上执行一次
       //每次调用时,都会拿到三个值:
       //  elem 自动获得当前正在遍历的元素值
       //  i  自动获得当前正在遍历的元素位置
       //  arr  自动获得当前正在遍历的整个数组对象
       return 判断条件
     })
     //原理: 如果将回调函数去每个元素上都调用一次,都返回true,整个every才返回true
      //如果调用过程中,只要有一个元素返回false,则整个every返回false

  1. 判断数组中是否包含符合要求的元素:
 var bool=arr.some(function(elem,i,arr){
       return 判断条件
     })
     //原理: 只要有一个元素判断返回true,整个some()就返回true。
     //除非所有元素判断后都返回false,整个some()才返回false

03================遍历:对数组中每个元素执行相同的操作=

01:forEach对原数组中的每个元素执行相同的操作–原始类型

        //对原数组中每个元素执行相同的操作
        var arr=[1,3,4,3,2,3];
        arr.forEach(
            function(elem,i,arr){
                // console.log(`自动调用一次回调函数,收到${elem}`)
                arr[i]*=2;
                // console.log(`*2后变为${elem}`);
            }
        )
        console.log(arr);  //[2, 6, 8, 6, 4, 6]

01:forEach对原数组中的每个元素执行相同的操作–引用类型

        var emps=[
            {eid:1,ename:'liang',salary:12000},
            {eid:2,ename:'guang',salary:12000},
            {eid:3,ename:'song',salary:12000}
        ];
        //对于对象数组来说 每个对象也不是存在在数组内部,其实都是存在数组外部
        //而数组中每个元素存的其实是对象的地址值
        emps.forEach(function(elem){
            elem.salary+=2000;
        })
        console.log(emps);
        //复制的时候 复制的是地址值 因为是引用类型的数据 对地址做任何操作,就相当于对原对象做任何操作

02:map
//取出原数组中每个元素,执行相同操作后,放入新数组中返回
//保持原数组不变 生成一个新的数组 map就是映射的意思

        var arr=[1,2,3,4,5,6];
        var newArr=arr.map(
            function(elem){
               return `<li>${elem}</li>`;
            }
        );
        console.log(arr);     //[1, 2, 3, 4, 5, 6]
        console.log(newArr);
        //["<li>1</li>", "<li>2</li>", "<li>3</li>", "<li>4</li>", "<li>5</li>", "<li>6</li>"]

04================过滤和汇总=

01:reduce 汇总:对数组内的元素进行求和汇总

	reduce  汇总:对数组内的元素进行求和汇总
	<script>
        var arr=[1,2,3,4,5];
        var sum=arr.reduce(
            function(prev,elem){
                return prev+elem;
            }
        )
        console.log(sum);  //15

02:filter 筛选 过滤:复制出数组中符合条件的元素 组成新数组

	filter 筛选 过滤:复制出数组中符合条件的元素 组成新数组
	filter 不改变原数组
	filter 不改变原数组
	<script>  
        // 筛选出偶数
        var arr=[1,2,3,4,5];
        var newArr=arr.filter(
            function(elem){
                return elem%2==0
            }
        )
        console.log(arr);  //[1,2,3,4,5]
        console.log(newArr);  //[2,4]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值