首页 JavaScript源码正文

数组的新方法概述(传说ES5)---JS新迭代

景先 源码 2015-03-07 673 0 js简写JS知识点

数组的新方法概述:(只兼容IE9+)

一、木有生成新数组的循环方法(新增的)

1. forEach 简答迭代方法

var arr=[1,2,3,4,5];
arr.forEach(function(n){
    console.log(n);
});

2. every  数组里所有的数都要符合要求

var arr=[2,4,6,8];
var even=arr.every(function(n){ //接收返回值为布尔的函数
    return n%2==0;
});
if(even){
    console.log('数组里所有的数都是偶数');    
}else{
    console.log('不是所有的数都是偶数');
}

3. some 只要有一个元素符合就行

var arr=[1,3,5];
var even=arr.some(function(n){ //接收返回值为布尔的函数
    return n%2==0;
});
if(even){
    console.log('数组里面有偶数');    
}else{
    console.log('数组里面没有偶数');
}

4. reduce 这个还不错,可以用来求和

//数组求和
var arr=[1,3,5,6];
var sum=arr.reduce(function(pre,cur){
    return pre+cur;
});
console.log(sum);
//字符串连接
var arr=['I ','Love ','China ','And ','Chinese'];
var sum=arr.reduce(function(pre,cur){
    return pre+cur;
});
console.log(sum); //->'I Love China And Chinese'

5. reduceRight() ,和reduce() 差不多,只不过从右开始的

var arr=['I ','Love ','China ','And ','Chinese '];
var sum=arr.reduceRight(function(pre,cur){
    return pre+cur;
});
console.log(sum); //->'Chinese And China Love I'

 二、生成新数组的循环方式

1. map() 这个大家用过

var arr=[1,2,3,4];
var newArr=arr.map(function(n){
    return n+=5;
});
console.log(arr, newArr)

2. filter(),此函数和every()差不多,不过返回并不是true,而是新数组

//过滤奇、偶数
var arr=[];
for(var i=0; i<20; i++){ //数组里面存入1-20个数
    arr[i]=i+1;
}
var evens=arr.filter(function(n){ //只要偶数
    return n%2==0
});
console.log(evens);

var odds=arr.filter(function(n){
    return n%2==1;
});
console.log(odds);
//过滤数组中大于40的数
var arr=[];
for(var i=0; i<20; i++){ //数组里面存入20个随机0-100的数
    arr[i]=Math.floor(Math.random()*101);
}
console.log('数组里所有的数:'+arr);
var newArr=arr.filter(function(num){
    return num>40;
});
console.log('大于40的所有数:'+newArr);
/过滤数组中单词不包含'a'的单词
var arr=['absolute','width','all','border'];
console.log('过滤之前的数组:'+arr);

var newArr=arr.filter(function(word){
    if(word.indexOf('a')>-1){
        return true;    
    }
    return false;
});
console.log('过滤完的数组:'+newArr);


版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论