首頁 > web前端 > js教程 > forEach()、Array.map()和Array.filter()怎麼用? (程式碼範例)

forEach()、Array.map()和Array.filter()怎麼用? (程式碼範例)

青灯夜游
發布: 2019-11-28 17:01:48
轉載
2101 人瀏覽過

本篇文章要為大家介紹forEach()、Array.map()和Array.filter()的用法。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

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.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板