• 技术文章 >web前端 >js教程

    forEach()、Array.map()和Array.filter()怎么用?(代码示例)

    青灯夜游青灯夜游2019-11-28 17:01:48转载713
    本篇文章给大家介绍一下forEach()、Array.map()和Array.filter()的用法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

    Array.forEach()

    forEach()方法为每个数组元素调用一次函数(回调函数)。【相关课程推荐:JavaScript视频教程

    <!DOCTYPE html>
    <html>
    <meta charset="utf-8">
    <title>JavaScript Array.forEach()</title>
    <body>
    <h2>JavaScript Array.forEach()</h2>
    <p>为每个数组元素调用一次函数。</p>
    <p id="demo"></p>
    <script>
        var txt = "";
        var numbers = [45, 4, 9, 16, 25];
        numbers.forEach(myFunction);
        document.getElementById("demo").innerHTML = txt;
    
        function myFunction(value, index, array) {
            txt = txt + value + "<br>";
        }
    </script>
    </body>
    </html>

    请注意,该函数有3个参数:

     ● 元素值

     ● 元素索引

     ● 数组本身

    上面的示例仅使用value参数。该示例可以重写为:

    <!DOCTYPE html>
    <html>
    <meta charset="utf-8">
    <title>JavaScript Array.forEach()</title>
    <body>
    <h2>JavaScript Array.forEach()</h2>
    <p>为每个数组元素调用一次函数。</p>
    <p id="demo"></p>
    <script>
        var txt = "";
        var numbers = [45, 4, 9, 16, 25];
        numbers.forEach(myFunction);
        document.getElementById("demo").innerHTML = txt;
    
        function myFunction(value) {
            txt = txt + value + "<br>";
        }
    </script>
    </body>
    </html>

    Array.map()

    map()方法通过对每个数组元素执行函数来创建新数组。map()方法是不执行没有值的数组元素的函数。map()方法不会更改原始数组。

    此示例将每个数组值乘以2:

    <!DOCTYPE html>
    <html>
    <meta charset="utf-8">
    <title>JavaScript Array.map()</title>
    <body>
    <h2>JavaScript Array.map()</h2>
    <p>通过对每个数组元素执行函数来创建新数组。</p>
    <p id="demo"></p>
    <script>
        var numbers1 = [45, 4, 9, 16, 25];
        var numbers2 = numbers1.map(myFunction);
        document.getElementById("demo").innerHTML = numbers2;
        function myFunction(value, index, array) {
            return value * 2;
        }
    </script>
    </body>
    </html>

    请注意,该函数有3个参数:

     ● 元素值

     ● 元素索引

     ● 数组本身

    当回调函数仅使用value参数时,可以省略索引和数组参数:

    <!DOCTYPE html>
    <html>
    <body>
    <h2>JavaScript Array.map()</h2>
    <p>通过对每个数组元素执行函数来创建新数组。</p>
    <p id="demo"></p>
    <script>
        var numbers1 = [45, 4, 9, 16, 25];
        var numbers2 = numbers1.map(myFunction);
        document.getElementById("demo").innerHTML = numbers2;
        function myFunction(value) {
            return value * 2;
        }
    </script>
    </body>
    </html>

    Array.filter()

    filter()方法创建一个新数组,其中包含传递测试的数组元素。此示例从值大于18的元素创建新数组:

    <!DOCTYPE html>
    <html>
    <meta charset="utf-8">
    <title>JavaScript Array.filter()</title>
    <body>
    <h2>JavaScript Array.filter()</h2>
    <p>使用通过测试的所有数组元素创建一个新数组。</p>
    <p id="demo"></p>
    <script>
        var numbers = [45, 4, 9, 16, 25];
        var over18 = numbers.filter(myFunction);
    
        document.getElementById("demo").innerHTML = over18;
    
        function myFunction(value, index, array) {
            return value > 18;
        }
    </script>
    </body>
    </html>

    请注意,该函数有3个参数:

     ● 元素值

     ● 元素索引

     ● 数组本身

    <!DOCTYPE html>
    <html>
    <meta charset="utf-8">
    <title>JavaScript Array.filter()</title>
    <body>
    <h2>JavaScript Array.filter()</h2>
    <p>使用通过测试的所有数组元素创建一个新数组。</p>
    <p id="demo"></p>
    <script>
        var numbers = [45, 4, 9, 16, 25];
        var over18 = numbers.filter(myFunction);
        document.getElementById("demo").innerHTML = over18;
        function myFunction(value) {
            return value > 18;
        }
    </script>
    </body>
    </html>

    本文来自 js教程 栏目,欢迎学习!

    以上就是forEach()、Array.map()和Array.filter()怎么用?(代码示例)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:51cto,如有侵犯,请联系admin@php.cn删除
    上一篇:浅谈JS数组Array的用法 下一篇:面试常问之JavaScript变量提升
    大前端线上培训班

    相关文章推荐

    • 详解JavaScript中Switch语句的用法• 深入了解JavaScript中的原型和继承• 深入理解JavaScript的并发模型和事件循环机制• JavaScript中二叉树,动态规划和回溯法(案例分析)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网