js数组的迭代器方法(someeveryforEachmapfilter)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js数组的迭代器方法(someeveryforEachmapfilter)相关的知识,希望对你有一定的参考价值。

数组操作之迭代器方法(这些方法可以对数组中的每一个元素运用某个方法)

一、不生成新数组的迭代器方法

1、forEach方法(接收一个函数作为参数)

function square(num){
        alert(num * num) ;
    }
    var nums = [1,2,3,4,5];
    console.log(nums.forEach(square));

2、every方法(接收一个返回值为布尔值的函数,对数组中的每一个元素使用该函数)

function isEven (num) {
        return num % 2==0;
    }
    var evens=[2,4,6,8,10];
    var isAllEven = evens.every(isEven);  //当且仅当数组中的所有的元素返回为真,every函数才会返回为真
    if(isAllEven){
        alert("all is even");
    }else{
        alert("not all is even");
    }

3、some方法(只要数组中有一个元素使用方法返回为真,some函数就会返回真)

var nums = [1,2,3,5,7,9];
        function isEven (num) {
        return num % 2==0;
        }
        alert(nums.some(isEven));   //true

4.reduce方法

  用法①:为数组中的元素求和

function add (currentTotal,currentValue) {
                //alert(currentValue);
                //alert(currentTotal);
                return currentTotal+currentValue;
            }
            var nums = [1,2,3,4,5,6,7];
            alert(nums.reduce(add));

  用法②:将数组中的元素连接成一个长的字符串  

function linkStr (foreStr,currentStr) {
                return foreStr + currentStr;
            }
            var strings = ["nolan","is","studying","javascript"];
            alert(strings.reduce(linkStr));

二、生成新数组的迭代器方法

  1.map方法(类似于不生成新数组中的forEach方法)

  用法①:取数组中每个单词的第一个字母

function firstAlpha (word) {
            return word[0].toUpperCase();
        }
        var words = ["nolan","is","studying","javascript"];
        var firstAlphas = words.map(firstAlpha);
        alert(firstAlphas.join(""));   //使用join可以去掉连接数组元素的逗号

 2.filter方法(类似于every方法)

用法①:筛选出符合条件(即返回值为true)的元素 

function isEven (num) {
            return num % 2==0;
        }
        var nums=[1,2,4,6,8,10];            
        var evens = nums.filter(isEven);
        alert(evens);
        //案例:随机生成一些成绩,挑选出大于六十分的成绩
        function pass (grade) {
            if(grade>60){
                return true;
            }else{
                return false;
            }
        }
        var grades = [];
        for(var i=0;i<20;i++){
            grades[i]=Math.floor(Math.random()*101);
        }
        alert(grades);
        var passedGrades=grades.filter(pass);
        alert(passedGrades);

 

以上是关于js数组的迭代器方法(someeveryforEachmapfilter)的主要内容,如果未能解决你的问题,请参考以下文章

JS数组方法(forEach()every()reduce())

警告:数组或迭代器中的每个孩子都应该有一个唯一的“key”道具。检查`MovieResults`的渲染方法

js迭代器iterator

反应警告:数组或迭代器中的每个孩子都应该有一个唯一的“key”道具。检查`App`的渲染方法

无法使用迭代器迭代具有数组类型的 GVariant

JS中的迭代器和生成器