Js Array使用方法总结

Array使用方法总结

在ES5中,一共有9个Array方法

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

indexOf(),返回查找到该数组中第一个找到的元素位置,没有找到就返回-1.

2、lastIndexOf

lastIndexOf(),从结尾开始查找,如果找到就返回位置,未找到返回-1.

3、filter

filter(),返回一个满新匹配过滤条件的数组
不用filter时:

var arr=[
    {"name":"apple","count":2},
    {"name":"orange","count":5},
    {"name":"pear","count":3},
    {"name":"orange","count":16}
];
var newArr=[];
for(var i=0,l=arr.length;i<l;i++){
    if(arr[i].name==='orange'){
        newArr.push(arr[i]);
    }
}

用了filter时:

var arr=[
    {"name":"apple","count":2},
    {"name":"orange","count":5},
    {"name":"pear","count":3},
    {"name":"orange","count":16}
];
var newArr=arr.filter(function(item){
    return item.name==='orange';
})
4、forEach

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

var arr=[1,2,3,4,5,6];
    //users the usual "for" loop to iterate
    for(var i=0,l=arr.length;i<l;i++){
    console.log(arr[i]);
}

    //users forEach to iterate
    arr.forEach(function(item,index){
    console.log(item);
})
5、map

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

不使用map

var oldArr=[{first_name:"Colin",last_name:"Toh"},{first_name:"Addy",last_name:"Osmani"},                {first_name:"Yehuda",last_name:"Katz"}];

function getNewArr(){
    var newArr={};
    for(var i=0,l=oldArr.length;i<l;i++){
        var item=oldarr[i];
        item.full_name=[item.first_name,item.last_name].join(' ');
        newArr[i]=item;
    }
    return newArr;
}

使用map

var oldArr=[{first_name:"Colin",last_name:"Toh"},{first_name:"Addy",last_name:"Osmani"},{first_name:"Yehuda",last_name:"Katz"}];

function getNewArr(){
    return oldArr.map(function(item,index){
        item.full_name=[item.first_name,item.last_name].join(" ");
        return item;
    })
}
6、reduce

reduce(),可以实现累加器的功能,将数组的每个值(从左至右)将其降低到一个值。

统计一个数组中有多少个不重复的单词

不使用reduce时

var arr = ["apple","orange","apple","orange","pear","orange"];
function GETwORDcNT(){
    var obj={};
    for(var i=0,l=arr.length;i<l;i++){
        var item=arr[i];
        obj[item]=(obj[item]+1)||1;
    }
    return obj;
}

使用reduce后

var arr = ["apple","orange","apple","orange","pear","orange"];
function getWordcnt(){
    return arr.reduce(function(prev,next){
        prev[next]=(prev[next]+1)||1;
        return prev;
    },{});
}
  • 未完待续。。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值