es5数组的api(了解)

一、基础

我下面的所有例子,都是用的是这个数组,所以先放在了前面

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

1.arr.indexOf(v);

  • a.返回的是第一次出现的下标
  • b.两个参数。后面参数代表从那个下标开始查找
  • c.如果不存在,返回-1.
  eg: 数组的去重
        分析: 建立一个临时数组,用indexOf(),让传递进来的数组中的每一个元素与临时数组中的每一个元素进行比较,如果tempArr.indexOf(arr[i]) 为-1,则push到临时数组中。
        function norepeat(arr) {
            var tempArr = [];
            for (var i = 0; i < arr.length; i++) {
                if(tempArr.indexOf(arr[i]) == -1) {   //用arr中的每一个元素与tempArr中的每一个元素进行比较,如果不相同,则放入临时的数组中。
                    tempArr.push(arr[i]);
                }
            }
              return tempArr;
        }
        console.log(norepeat(arr));

2.arr.lastIndexOf(v);

  • a.从后往前找,返回的是倒着数的第一次出现的下标
  • b.接受两个参数,第二个参数,代表的是从哪个下标开始

eg:

检测数组中没有重复的数组项
        分析: 让indexOf从前往后找,lastIndexOf 从后往前找,如果从前往后找和从后往前找,返回的下标相同,则说明没有重复的选项
        for(var i=0;i<arr.length;i++) {
            if(arr.indexOf(arr[i])== arr.lastIndexOf(arr[i])) {
                console.log(arr[i]);
            }
        }

3.arr.forEach(function(value,index,arr){
  //arr 数组项
  //index 下标
  //arr 数组本身
})
注: forEach()没有返回值,必须要借助变量接收返回值

eg:数组求和
var sum = 0;
        arr.forEach(function(value,index,arr){
            // console.log(value);
            sum += value;

        })
        console.log(sum);

4.arr.map(function(value,index,arr) {
  return value +1; //把数组项的每一项+1,然后映射到一个新数组,不影响原数组
})
//有返回值。

eg:数组中的每一个值都加1

var arr1 = [];
        arr1 = arr.map(function (value, index, arr) {
            return value + 1;
        })
        console.log(arr1);
        console.log(arr);

5.arr.reduce(function(acc,cur,index,arr){
  //acc 累计器
  //value 数组的每一个值
  //index 下标
  // arr 数组本身

  return acc + value; //累加
  return acc * value; //累乘
  return acc / value; //累除
  return acc - value; //累减
})

注:每种求和求积,都要有一个初始值,好比,我们在求和的时候,sum的初始值为0,求积的时候,produce的初始值为1。总之,对于不同的计算有不同的初始值,而我们的reduce方法中,正好提供了一个累计器,在方法的底层,已经将每种计算的初始值设置好,我们只需要直接计算即可。

6.arr.filter(function(value,index,arr) {
  return 过滤条件;
})

eg: 过滤小于5的数字

 res=arr.filter( function(value,index,arr) {
            return value < 5;
        })
        console.log(res);
 

注:在map之后的m几个api中(包括map),每个api都有返回值

转载于:https://www.cnblogs.com/lxz123/p/11494154.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值