forEach方法
forEach 用於迭代數組。這是一個簡單的例子:
const numbers = [1, 2, 3, 4, 5, 6, 7]; numbers.forEach(function (el) { if (el % 2 === 0) { console.log(el); } });
現在讓我們將 forEach 與物件陣列一起使用:
const movies = [ { title: 'Indiana Jones', score: 77, }, { title: 'Star Trek', score: 94, }, { title: 'Deadpool', score: 79, }, ]; movies.forEach(function (movie) { console.log(`${movie.title} - ${movie.score}/100`); });
地圖
Map 使用對數組中每個元素呼叫回調的結果建立一個新數組。
首先,讓我們迭代一個基本陣列:
const lCase = ['jim', 'bob', 'abby']; const uCase = lCase.map(function (t) { return t.toUpperCase(); }); console.log(lCase, uCase);
現在,讓我們迭代物件陣列:
const movies = [ { title: 'Indiana Jones', score: 77, }, { title: 'Star Trek', score: 94, }, { title: 'Deadpool', score: 79, }, ]; const titles = movies.map(function (movie) { return movie.title; }); console.log(titles);
箭頭功能
我們可以寫如下箭頭函數來簡化語法:
const square = (x) => { return x * x; }; const sum = (x, y) => { return x + y; }; const rollDie = () => { return Math.floor(Math.random() * 6) + 1; }; console.log(square(2), sum(2, 3)); console.log(rollDie());
我們也可以重新訪問電影範例並使用箭頭函數:
const movies = [ { title: 'Indiana Jones', score: 77, }, { title: 'Star Trek', score: 94, }, { title: 'Deadpool', score: 79, }, ]; const newMovies = movies.map((movie) => { return `${movie.title} = ${movie.score} / 10`; });
隱式回報
隱式回傳是編寫函數的另一種簡寫方式,一些範例包括:
const rollDie = () => Math.floor(Math.random() * 6) + 1; const isEven = (num) => num % 2 === 0;
設定超時
x 毫秒後運行回呼
console.log('Apears 1st'); // takes callback, then milliseconds setTimeout(() => { console.log('Apears 3rd'); }, 3000); console.log('Apears 2nd');
設定間隔
每 x 毫秒重複回呼
setInterval(() => { console.log(Math.random()); }, 2000);
如果我們想讓回呼最終停止,我們可以這樣做:
const id = setInterval(() => { console.log(Math.random()); }, 2000); clearInterval(id); // stops the loop
過濾方式
Filter 使用在回呼函數中傳遞 return true 的元素建立一個新陣列
const nums = [9, 8, 7, 6, 5, 4, 3, 2, 1]; const odds = nums.filter((n) => { return n % 2 === 1; // our callback returns true or false // if it returns true, n is added to the filtered array }); // [9, 7, 5, 3, 1] const smallNums = nums.filter((n) => n <p>我們也可以過濾數組中的物件:<br> </p> <pre class="brush:php;toolbar:false">const movies = [ { title: 'Indiana Jones', score: 77, }, { title: 'Star Trek', score: 94, }, { title: 'Deadpool', score: 79, }, ]; const badMovies = movies.filter((movie) => { return movie.score <h2> 一些和每一個 </h2>
- Some - 測試數組中的任何元素是否在回調函數中傳回 true。它傳回一個布林值
const firstWords = ['dog', 'jello', 'log', 'bag', 'wag', 'cupcake']; words.some((word) => { return word.length > 4; }); // true words.some((word) => word[0] === 'Z'); // false words.some((word) => word.includes('cake')); // true
- Every - 測試數組中的所有元素是否在回調函數中傳回 true。它傳回一個布林值
const words = ['dog', 'dig', 'log', 'bag', 'wag']; words.every((word) => { return word.length === 3; }); // true words.every((word) => word[0] === 'd'); // false words.every((w) => { return w[w.length - 1] === 'g'; }); // true
減少
- reduce 回呼函數中的第一個(也是可能的唯一)參數。
- 函數的第一個參數是一個值,當我們迭代每個項目時,該值可能會改變。
- 此函數中的第二個參數是陣列索引中的值。
- reduce 的可選第二個參數是我們希望回呼函數的第一個值開始的值。
const prices = [9.99, 1.5, 19.99, 49.99, 30.5]; const total = prices.reduce((total, price) => { return total + price; }); const min = prices.reduce((min, price) => { return Math.min(min, price); }); console.log(min);
我們也可以使用物件陣列來做到這一點:
const movies = [ { title: 'Indiana Jones', score: 77, }, { title: 'Star Trek', score: 94, }, { title: 'Deadpool', score: 79, }, ]; let bestMovie = movies.reduce((best, movie) => { if (movie.score > best.score) { return movie; } return best; }); console.log(bestMovie);
我們也可以設定reducer的初始值:
let nums = [1, 2, 3, 4, 5]; let maxPlus100 = nums.reduce((max, num) => { return (max += num); }, 100); console.log(maxPlus100); // 115
以上是JavaScript:forEach、map、箭頭函數、setTimeout、setInterval、filter、some、every 和 reduce的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript字符串替換方法詳解及常見問題解答 本文將探討兩種在JavaScript中替換字符串字符的方法:在JavaScript代碼內部替換和在網頁HTML內部替換。 在JavaScript代碼內部替換字符串 最直接的方法是使用replace()方法: str = str.replace("find","replace"); 該方法僅替換第一個匹配項。要替換所有匹配項,需使用正則表達式並添加全局標誌g: str = str.replace(/fi

因此,在這裡,您準備好了解所有稱為Ajax的東西。但是,到底是什麼? AJAX一詞是指用於創建動態,交互式Web內容的一系列寬鬆的技術。 Ajax一詞,最初由Jesse J創造

本文討論了在瀏覽器中優化JavaScript性能的策略,重點是減少執行時間並最大程度地減少對頁面負載速度的影響。

將矩陣電影特效帶入你的網頁!這是一個基於著名電影《黑客帝國》的酷炫jQuery插件。該插件模擬了電影中經典的綠色字符特效,只需選擇一張圖片,插件就會將其轉換為充滿數字字符的矩陣風格畫面。快來試試吧,非常有趣! 工作原理 插件將圖片加載到畫布上,讀取像素和顏色值: data = ctx.getImageData(x, y, settings.grainSize, settings.grainSize).data 插件巧妙地讀取圖片的矩形區域,並利用jQuery計算每個區域的平均顏色。然後,使用

本文討論了使用瀏覽器開發人員工具的有效JavaScript調試,專注於設置斷點,使用控制台和分析性能。

本文將引導您使用jQuery庫創建一個簡單的圖片輪播。我們將使用bxSlider庫,它基於jQuery構建,並提供許多配置選項來設置輪播。 如今,圖片輪播已成為網站必備功能——一圖胜千言! 決定使用圖片輪播後,下一個問題是如何創建它。首先,您需要收集高質量、高分辨率的圖片。 接下來,您需要使用HTML和一些JavaScript代碼來創建圖片輪播。網絡上有很多庫可以幫助您以不同的方式創建輪播。我們將使用開源的bxSlider庫。 bxSlider庫支持響應式設計,因此使用此庫構建的輪播可以適應任何

數據集對於構建API模型和各種業務流程至關重要。這就是為什麼導入和導出CSV是經常需要的功能。在本教程中,您將學習如何在Angular中下載和導入CSV文件


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Dreamweaver Mac版
視覺化網頁開發工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 Linux新版
SublimeText3 Linux最新版