選單
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

JS 教程

JS 首頁 JS 簡介 JS 位置 JS 輸出 JS 語句 JS 語法 JS 註釋 JS 變數 JS Let JS Const JS 運算子 JS 算術 JS 賦值 JS 資料型別 JS 函式 JS 物件 JS 物件屬性 JS 物件方法 JS 物件顯示 JS 物件建構函式 JS 事件 JS 字串 JS 字串方法 JS 字串搜尋 JS 字串模板 JS 數字 JS BigInt JS 數字方法 JS 數字屬性 JS 陣列 JS 陣列方法 JS 陣列搜尋 JS 陣列排序 JS 陣列迭代 JS 陣列 Const JS 日期 JS 日期格式 JS 日期獲取方法 JS 日期設定方法 JS Math JS Random JS 布林值 JS 比較 JS If Else JS Switch JS For 迴圈 JS For In 迴圈 JS For Of 迴圈 JS While 迴圈 JS Break JS 可迭代物件 JS Set JS Set 方法 JS Map JS Map 方法 JS Typeof JS 型別轉換 JS 解構 JS 位運算 JS 正則表示式 JS 優先順序 JS 錯誤 JS 作用域 JS 變數提升 JS 嚴格模式 JS this 關鍵字 JS 箭頭函式 JS 類 JS 模組 JS JSON JS 除錯 JS 風格指南 JS 最佳實踐 JS 常見錯誤 JS 效能 JS 保留字

JS 版本

JS 版本 JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS 2019 JS 2020 JS 2021 JS 2022 JS 2023 JS 2024 JS IE / Edge JS 歷史

JS 物件

物件定義 物件原型 物件方法 物件屬性 物件 Get / Set 物件保護

JS 函式

函式定義 函式引數 函式呼叫 函式 Call 函式 Apply 函式 Bind 函式閉包

JS 類

類入門 類繼承 類靜態

JS 非同步

JS 回撥 JS 非同步 JS Promises JS Async/Await

JS HTML DOM

DOM 入門 DOM 方法 DOM Document DOM 元素 DOM HTML DOM 表單 DOM CSS DOM 動畫 DOM 事件 DOM 事件監聽器 DOM 導航 DOM 節點 DOM 集合 DOM 節點列表

JS Browser BOM

JS Window JS Screen JS Location JS History JS Navigator JS Popup Alert JS Timing JS Cookies

JS Web APIs

Web API 入門 Web 表單 API Web History API Web Storage API Web Worker API Web Fetch API Web Geolocation API

JS AJAX

AJAX 入門 AJAX XMLHttp AJAX Request AJAX Response AJAX XML 檔案 AJAX PHP AJAX ASP AJAX 資料庫 AJAX 應用 AJAX 示例

JS JSON

JSON 入門 JSON 語法 JSON vs XML JSON 資料型別 JSON 解析 JSON Stringify JSON 物件 JSON 陣列 JSON 伺服器 JSON PHP JSON HTML JSON JSONP

JS vs jQuery

jQuery 選擇器 jQuery HTML jQuery CSS jQuery DOM

JS Graphics

JS Graphics JS Canvas JS Plotly JS Chart.js JS Google Chart JS D3.js

JS 示例

JS 示例 JS HTML DOM JS HTML 輸入 JS HTML 物件 JS HTML 事件 JS 瀏覽器 JS 編輯器 JS 練習 JS 測驗 JS 網站 JS 面試準備 JS Bootcamp JS 證書

JS 參考

JavaScript 物件 HTML DOM 物件


JavaScript 陣列迭代


JavaScript Array forEach()

forEach() 方法對陣列中的每個元素呼叫一次函式(回撥函式)。

示例

const numbers = [45, 4, 9, 16, 25];
let txt = "";
numbers.forEach(myFunction);

function myFunction(value, index, array) {
  txt += value + "<br>";
}
自己動手試一試 »

請注意,該函式接受 3 個引數

  • 專案值
  • 專案索引
  • 陣列本身

上面的示例只使用了值引數。該示例可以重寫為

示例

const numbers = [45, 4, 9, 16, 25];
let txt = "";
numbers.forEach(myFunction);

function myFunction(value) {
  txt += value + "<br>";
}
自己動手試一試 »

JavaScript Array map()

map() 方法透過對每個陣列元素執行一個函式來建立一個新陣列。

map() 方法不為空值陣列元素執行該函式。

map() 方法不會改變原始陣列。

此示例將每個陣列值乘以 2

示例

const numbers1 = [45, 4, 9, 16, 25];
const numbers2 = numbers1.map(myFunction);

function myFunction(value, index, array) {
  return value * 2;
}
自己動手試一試 »

請注意,該函式接受 3 個引數

  • 專案值
  • 專案索引
  • 陣列本身

當回撥函式只使用值引數時,可以省略 index 和 array 引數

示例

const numbers1 = [45, 4, 9, 16, 25];
const numbers2 = numbers1.map(myFunction);

function myFunction(value) {
  return value * 2;
}
自己動手試一試 »

JavaScript Array flatMap()

ES2019 為 JavaScript 添加了 Array flatMap() 方法。

flatMap() 方法首先對映陣列的所有元素,然後透過展平陣列建立一個新陣列。

示例

const myArr = [1, 2, 3, 4, 5, 6];
const newArr = myArr.flatMap((x) => x * 2);
自己動手試一試 »

瀏覽器支援

JavaScript Array flatMap() 自 2020 年 1 月起在所有現代瀏覽器中都受支援

Chrome 69 Edge 79 Firefox 62 Safari 12 Opera 56
2018 年 9 月 2020 年 1 月 2018 年 9 月 2018 年 9 月 2018 年 9 月


JavaScript Array filter()

filter() 方法建立一個新陣列,其中包含透過測試的陣列元素。

此示例從值大於 18 的元素建立新陣列

示例

const numbers = [45, 4, 9, 16, 25];
const over18 = numbers.filter(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}
自己動手試一試 »

請注意,該函式接受 3 個引數

  • 專案值
  • 專案索引
  • 陣列本身

在上面的示例中,回撥函式沒有使用 index 和 array 引數,因此可以省略它們

示例

const numbers = [45, 4, 9, 16, 25];
const over18 = numbers.filter(myFunction);

function myFunction(value) {
  return value > 18;
}
自己動手試一試 »

JavaScript Array reduce()

reduce() 方法對每個陣列元素執行一個函式,以生成(將其歸結為)一個單一值。

reduce() 方法從陣列的左側到右側工作。另請參閱 reduceRight()

reduce() 方法不會減少原始陣列。

此示例查詢陣列中所有數字的和

示例

const numbers = [45, 4, 9, 16, 25];
let sum = numbers.reduce(myFunction);

function myFunction(total, value, index, array) {
  return total + value;
}
自己動手試一試 »

請注意,該函式接受 4 個引數

  • 總計(初始值/先前返回值)
  • 專案值
  • 專案索引
  • 陣列本身

上面的示例沒有使用 index 和 array 引數。它可以重寫為

示例

const numbers = [45, 4, 9, 16, 25];
let sum = numbers.reduce(myFunction);

function myFunction(total, value) {
  return total + value;
}
自己動手試一試 »

reduce() 方法可以接受一個初始值

示例

const numbers = [45, 4, 9, 16, 25];
let sum = numbers.reduce(myFunction, 100);

function myFunction(total, value) {
  return total + value;
}
自己動手試一試 »

JavaScript Array reduceRight()

reduceRight() 方法對每個陣列元素執行一個函式,以生成(將其歸結為)一個單一值。

reduceRight() 方法從陣列的右側到左側工作。另請參閱 reduce()

reduceRight() 方法不會減少原始陣列。

此示例查詢陣列中所有數字的和

示例

const numbers = [45, 4, 9, 16, 25];
let sum = numbers.reduceRight(myFunction);

function myFunction(total, value, index, array) {
  return total + value;
}
自己動手試一試 »

請注意,該函式接受 4 個引數

  • 總計(初始值/先前返回值)
  • 專案值
  • 專案索引
  • 陣列本身

上面的示例沒有使用 index 和 array 引數。它可以重寫為

示例

const numbers = [45, 4, 9, 16, 25];
let sum = numbers.reduceRight(myFunction);

function myFunction(total, value) {
  return total + value;
}
自己動手試一試 »

JavaScript Array every()

every() 方法檢查所有陣列值是否透過測試。

此示例檢查所有陣列值是否都大於 18

示例

const numbers = [45, 4, 9, 16, 25];
let allOver18 = numbers.every(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}
自己動手試一試 »

請注意,該函式接受 3 個引數

  • 專案值
  • 專案索引
  • 陣列本身

當回撥函式只使用第一個引數(值)時,可以省略其他引數

示例

const numbers = [45, 4, 9, 16, 25];
let allOver18 = numbers.every(myFunction);

function myFunction(value) {
  return value > 18;
}
自己動手試一試 »

JavaScript Array some()

some() 方法檢查是否有某些陣列值透過測試。

此示例檢查是否有某些陣列值大於 18

示例

const numbers = [45, 4, 9, 16, 25];
let someOver18 = numbers.some(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}
自己動手試一試 »

請注意,該函式接受 3 個引數

  • 專案值
  • 專案索引
  • 陣列本身

JavaScript Array.from()

Array.from() 方法從任何具有 length 屬性的物件或任何可迭代物件返回一個 Array 物件。

示例

從字串建立陣列

Array.from("ABCDEFG");
自己動手試一試 »

瀏覽器支援

from() 是一個 ES6 特性 (JavaScript 2015)。

自 2017 年 6 月起,所有現代瀏覽器都完全支援 ES6

Chrome 51 Edge 15 Firefox 54 Safari 10 Opera 38
2016 年 5 月 2017 年 4 月 2017 年 6 月 2016 年 9 月 2016 年 6 月

Internet Explorer 不支援 from()


JavaScript Array keys()

Array.keys() 方法返回一個帶有陣列鍵的 Array Iterator 物件。

示例

建立一個 Array Iterator 物件,包含陣列的鍵

const fruits = ["Banana", "Orange", "Apple", "Mango"];
const keys = fruits.keys();

for (let x of keys) {
  text += x + "<br>";
}
自己動手試一試 »

瀏覽器支援

keys() 是一個 ES6 特性 (JavaScript 2015)。

自 2017 年 6 月起,所有現代瀏覽器都完全支援 ES6

Chrome 51 Edge 15 Firefox 54 Safari 10 Opera 38
2016 年 5 月 2017 年 4 月 2017 年 6 月 2016 年 9 月 2016 年 6 月

Internet Explorer 不支援 keys()


JavaScript Array entries()

示例

建立一個數組迭代器,然後迭代鍵/值對

const fruits = ["Banana", "Orange", "Apple", "Mango"];
const f = fruits.entries();

for (let x of f) {
  document.getElementById("demo").innerHTML += x;
}
自己動手試一試 »

entries() 方法返回一個帶有鍵/值對的 Array Iterator 物件

[0, "香蕉"]
[1, "橙子"]
[2, "蘋果"]
[3, "芒果"]

entries() 方法不會改變原始陣列。

瀏覽器支援

entries() 是一個 ES6 特性 (JavaScript 2015)。

自 2017 年 6 月起,所有現代瀏覽器都完全支援 ES6

Chrome 51 Edge 15 Firefox 54 Safari 10 Opera 38
2016 年 5 月 2017 年 4 月 2017 年 6 月 2016 年 9 月 2016 年 6 月

Internet Explorer 不支援 entries()


JavaScript 陣列 with() 方法

ES2023 添加了 Array with() 方法,作為一種安全更新陣列元素而不改變原始陣列的方法。

示例

const months = ["一月", "二月", "三月", "四月"];
const myMonths = months.with(2, "March");
自己動手試一試 »

JavaScript 陣列擴充套件運算子 (...)

... 運算子將可迭代物件(如陣列)展開為更多元素

示例

const q1 = ["Jan", "Feb", "Mar"];
const q2 = ["Apr", "May", "Jun"];
const q3 = ["Jul", "Aug", "Sep"];
const q4 = ["Oct", "Nov", "May"];

const year = [...q1, ...q2, ...q3, ...q4];
自己動手試一試 »

瀏覽器支援

... 是一個 ES6 特性 (JavaScript 2015)。

自 2017 年 6 月起,所有現代瀏覽器都完全支援 ES6

Chrome 51 Edge 15 Firefox 54 Safari 10 Opera 38
2016 年 5 月 2017 年 4 月 2017 年 6 月 2016 年 9 月 2016 年 6 月

Internet Explorer 不支援 ...


完整的陣列參考

要獲取完整的陣列參考,請訪問我們的

完整的 JavaScript 陣列參考.

該參考包含所有陣列屬性和方法的描述及示例。

×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援