Array.prototype方法

参考地址:Array.prototype

介绍几种常用的

Array.prototype.indexOf
Array.prototype.lastIndexOf
Array.prototype.every
Array.prototype.some
Array.prototype.forEach
Array.prototype.map
Array.prototype.filter
Array.prototype.reduce
1、indexOf

indexOf()方法返回在该数组中第一个找到的元素位置,如果它不存在则返回-1

var _indexOf = function(){
    const arr = [1,2,3,4,5];
    return arr.indexOf(9)!=-1?true:false;
}
console.log(_indexOf());//false
2、lastindexOf

lastIndexOf() 方法返回在该数组中最后一个找到的元素位置,和 indexof相反。

3、every()

every()可是检测数组中的每一项是否符合条件

var _every = function(){
    const arr = [1,2,3,4,5,-1];
    const result = arr.every(function(item,index){
        return item>0;
    });
    return result;
}
console.log(_every());//false
4、some()

some()可以检测数组中是否有某一项符合条件

var _some = function(){
    const arr = [1,2,3,4,5];
    const result = arr.some(function(item,index){
        return item >4;
    })
    return result;
}
console.log(_some());//true
5、 forEach()

forEach为每个元素执行对应的方法

var _foreach = function(){
    const arr = [1,2,3,4,5]
    for(const i of arr.keys()){
        console.log(arr[i]);
    }
}
_foreach();//1,2,3,4,5
6、 map()

map()对数组的每个元素进行一定操作(映射)后,会返回一个新的数组

var _map = function(){
    const arr = [
    {first_name:"Colin",last_name:"Toh"},
    {first_name:"Addy",last_name:"Osmani"},
    {first_name:"Yehuda",last_name:"Katz"}
    ];
    return arr.map(function(item,index){
        item.full_name = [item.first_name,item.last_name].join(" ");
        return item;
    })
}
console.log(_map());
forEach 与map的区别

forEach:用来遍历数组中的每一项;这个方法执行是没有返回值的,对原来数组也没有影响;数组中有几项,那么传递进去的匿名回调函数就需要执行几次;每一次执行匿名函数的时候,还给其传递了三个参数值:数组中的当前项item,当前项的索引index,原始数组list;理论上这个方法是没有返回值的,仅仅是遍历数组中的每一项,不对原来数组进行修改;但是我们可以自己通过数组的索引来修改原来的数组;

var _foreackO = function(){
    const arr = [1,2,3,4,5];
    var res = arr.forEach(function (item,index,input) {
            input[index] = item*10;
    });
    console.log(res);//undefined
    return arr;
}
console.log(_foreackO());//10, 20, 30, 40, 50

map: map的回调函数中支持return返回值;return的是啥,相当于把数组中的这一项变为啥(并不影响原来的数组,只是相当于把原数组克隆一份,把克隆的这一份的数组中的对应项改变了);

var _mapO = function(){
    const arr = [1,2,3,4,5];
    var res = arr.map(function (item,index,input) {
      return item*10;
    });
    console.log(res);//10,20,30,40,50
    return arr;
}
console.log(_mapO());//1,2,3,4,5
7、 filter

该filter()方法创建一个新的匹配过滤条件的数组

var _filter = function(){
    const arr = [1,2,3,4,5];
    let res = arr.filter(function(item){
        return item === 1;
    })
    console.log(res);//1
    return arr;
}
console.log(_filter());//1,2,3,4,5
8、 reduce()

reduce()可以实现一个累加器的功能,将数组的每个值(从左到右)将其降低到一个值。 说实话刚开始理解这句话有点难度,它太抽象了。

var _reduce1 = function(){
    const arr = [1,2,3,4,5,5];
    return arr.reduce(function(prev,next){
    console.log("prev:",prev);
    console.log("next:",next);
    return prev + " " +next;
        });
}
var _reduce2 = function(){
    const arr = [1,2,3,4,5,5,1,2];
    return arr.reduce(function(prev,next){
    console.log("prev:",prev);
    console.log("next:",next);
    prev[next] = (prev[next]+1) || 1;
    return prev;
  },{});
}
console.log(_reduce1());//1 2 3 4 5 5
console.log(_reduce2());//{1: 2, 2: 2, 3: 1, 4: 1, 5: 2}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值