JS學習筆記#7 | 陣列(Array)

更新於 發佈於 閱讀時間約 11 分鐘

陣列(Array)是 JavaScript 中用來儲存一組有序資料的集合。

陣列可以包含各種資料型別的值,例如數字、字串、布林值,甚至其他陣列或物件。


1. 宣告陣列的方法

  • 使用中括號 []
    let fruits = ["蘋果", "香蕉", "橘子"];
  • 使用 Array 建構函式
    let numbers = new Array(1, 2, 3);


2. 陣列的特性

  • 有序性:陣列中的每個元素都有一個索引,從 0 開始計數。例如: 第一個元素的索引是 0,第二個是 1,依此類推。
  • 長度屬性 length:可以取得陣列的長度。
    let items = [1, 2, 3, 4];
    console.log(items.length); // 輸出:4


3. 訪問與修改陣列元素

  • 訪問元素:使用中括號和索引。
    let colors = ["紅", "藍", "綠"];
    console.log(colors[0]); // 輸出:"紅"
  • 修改元素:直接使用索引賦新值。
    let colors = ["紅", "藍", "綠"];
    colors[1] = "黃色"; // 將 "藍" 修改為 "黃色"
    console.log(colors); // 輸出:["紅", "黃色", "綠"]



4. 陣列方法

  • push():將元素加到陣列末端。
    let arr = ['a', 'b', 'c'];
    const count = arr.push('d');
    console.log(count); // 返回:4
    console.log(arr); // ["a", "b", "c", "d"]
  • pop():移除並回傳陣列最後一個元素。
    let arr = ['a', 'b', 'c'];
    console.log(arr.pop()); // 輸出:"c"
    console.log(arr); // 輸出:["a", "b"]
  • shift():移除並回傳陣列第一個元素。
    let arr = ['a', 'b', 'c'];
    const firstElement = arr.shift();
    console.log(firstElement); // 輸出:"a"
    console.log(arr); // 輸出:["b", "c"]
  • unshift():將元素加到陣列開頭。
    let arr = ['a', 'b', 'c'];
    console.log(arr.unshift('d', 'f')); // 返回:5
    console.log(arr); // 輸出:["d", "f", "a", "b", "c"]
  • forEach():對陣列中的每個元素執行提供的函式。
    let numbers = [1, 2, 3]; 
    numbers.forEach(num => console.log(num));
    // 輸出:1
    // 輸出:2
    // 輸出:3
  • map():對陣列中的每個元素執行提供的函式並回傳一個新陣列。
    let numbers = [1, 2, 3];
    let doubled = numbers.map(num => num * 2);
    console.log(numbers) // [1,2,3]
    console.log(doubled) // [2, 4, 6]
  • filter():根據條件過濾元素並回傳一個新陣列。
    let numbers = [1, 2, 3];
    let evenNumbers = numbers.filter(num => num % 2 === 0);
    console.log(numbers) // [1,2,3]
    console.log(evenNumbers) // [2]
  • concat():合併陣列。
    let arr1 = [1, 2];
    let arr2 = [3, 4];
    let combined = arr1.concat(arr2);
    console.log(combined) // [1, 2, 3, 4]
  • includes():檢查陣列中是否包含指定元素,回傳 true 或 false。
    const pets = ['cat', 'dog', 'bat'];
    console.log(pets.includes("cat")); // 輸出:true
  • find():找出陣列中符合條件的第一個元素,並回傳該元素的值。如果沒有符合條件的元素,則回傳 undefined。
let numbers = [10, 20, 30, 40, 50];
let foundNumber = numbers.find(num => num > 30);
console.log(foundNumber); // 輸出:40

let notFound = numbers.find(num => num > 100);
console.log(notFound); // 輸出:undefined

let users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' },
];
let user = users.find(u => u.id === 2);
console.log(user); // 輸出: { id: 2, name: 'Bob' }
  • some():檢查陣列中是否至少有一個元素符合條件,回傳 true 或 false。
let numbers = [1, 3, 5, 8, 9];
let hasEven = numbers.some(num => num % 2 === 0);
console.log(hasEven); // 輸出:true

let allOdd = numbers.some(num => num % 2 === 0);
console.log(allOdd); // 輸出:true

let products = [
{ name: 'Apple', price: 1.2 },
{ name: 'Banana', price: 0.8 },
{ name: 'Orange', price: 1.5 }
];
let hasExpensive = products.some(product => product.price > 2);
console.log(hasExpensive); // 輸出: false
  • every():檢查陣列中是否所有元素都符合條件,回傳 true 或 false。
let numbers = [2, 4, 6, 8, 10];
let allEven = numbers.every(num => num % 2 === 0);
console.log(allEven); // 輸出:true

let allGreaterThanZero = numbers.every(num => num > 0);
console.log(allGreaterThanZero); // 輸出:true

let numbers2 = [2, 4, 6, 8, 10, 1];
let allEven2 = numbers2.every(num => num % 2 === 0);
console.log(allEven2); // 輸出:false

let ages = [25, 30, 22, 28, 35];
let allAdults = ages.every(age => age >= 18);
console.log(allAdults); // 輸出: true
  • sort():對陣列的元素進行排序,並回傳排序後的陣列。
// 字串排序​
let fruits = ["banana", "apple", "orange", "grape"];
fruits.sort();
console.log(fruits); // 輸出:["apple", "banana", "grape", "orange"]

//數字排序 (使用比較函式)
let numbers = [10, 2, 1, 25];
// 升序排序
numbers.sort((a, b) => a - b);
console.log(numbers); // 輸出:[1, 2, 10, 25]
// 降序排序
numbers.sort((a, b) => b - a);
console.log(numbers); // 輸出:[25, 10, 2, 1]

// 物件排序
let products = [
{ name: "Laptop", price: 1200 },
{ name: "Tablet", price: 300 },
{ name: "Phone", price: 800 },
];
// 按照價格升序排序
products.sort((a, b) => a.price - b.price);
console.log(products);
// 輸出:
// [
// { name: 'Tablet', price: 300 },
// { name: 'Phone', price: 800 },
// { name: 'Laptop', price: 1200 }
// ]
    • .sort() 會直接修改原始陣列。如果你不希望修改原始陣列,可以使用 slice() 複製一份再排序。
avatar-img
0會員
18內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
koko的沙龍 的其他內容
函式(Function)是 JavaScript 中用來完成特定任務的可重複執行的程式碼片段。 函式可以接受輸入(參數),進行處理,並回傳結果。 主要的函式建立方式有函式宣告、函式表達式、和箭頭函式。
if 語句是用來根據條件執行特定程式碼的一種控制流程語句。在 JavaScript 中,if 語句可以幫助我們做出決策,當條件為 true 時執行一段代碼,否則忽略。
在 JavaScript 中,邏輯運算子和比較運算子是用於條件判斷的重要工具。 它們常被用來進行邏輯運算和比較數值或變數,進一步決定程式的執行流程。
在 JavaScript 中,字串(String)是一個不可變的原生資料型態,用來存放並處理文字。JavaScript 提供多種方法和屬性來操作和格式化字串。理解這些屬性與方法,能讓我們更靈活地處理文字資料,特別是在處理用戶輸入、顯示訊息或處理 API 回傳的資料時非常有用。
在 JavaScript 中,資料型態分為「原生值(primitive values)」和「物件(objects)」。原生值包括String、Number、Boolean、Null、Undefined、Symbol和 BigInt。物件則是包括Array和 Function等結構。
在 JavaScript 中,變數是一個儲存值的容器,可用於管理和操作資料。變數可以透過 let、const 和 var 進行宣告。選擇適當的變數宣告方式是確保程式碼可讀性和可維護性的關鍵。
函式(Function)是 JavaScript 中用來完成特定任務的可重複執行的程式碼片段。 函式可以接受輸入(參數),進行處理,並回傳結果。 主要的函式建立方式有函式宣告、函式表達式、和箭頭函式。
if 語句是用來根據條件執行特定程式碼的一種控制流程語句。在 JavaScript 中,if 語句可以幫助我們做出決策,當條件為 true 時執行一段代碼,否則忽略。
在 JavaScript 中,邏輯運算子和比較運算子是用於條件判斷的重要工具。 它們常被用來進行邏輯運算和比較數值或變數,進一步決定程式的執行流程。
在 JavaScript 中,字串(String)是一個不可變的原生資料型態,用來存放並處理文字。JavaScript 提供多種方法和屬性來操作和格式化字串。理解這些屬性與方法,能讓我們更靈活地處理文字資料,特別是在處理用戶輸入、顯示訊息或處理 API 回傳的資料時非常有用。
在 JavaScript 中,資料型態分為「原生值(primitive values)」和「物件(objects)」。原生值包括String、Number、Boolean、Null、Undefined、Symbol和 BigInt。物件則是包括Array和 Function等結構。
在 JavaScript 中,變數是一個儲存值的容器,可用於管理和操作資料。變數可以透過 let、const 和 var 進行宣告。選擇適當的變數宣告方式是確保程式碼可讀性和可維護性的關鍵。
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇內容,將會講解什麼是資料型態,以及與資料型態相關的知識。包括資料型態的簡介、實數、布林值、 字串、陣列。
Thumbnail
【這個系列,目標是以比較輕鬆的方式讓大家一起學習AE表達式。】 本文是番外篇 3,主要是一些概念的補充,介紹陣列。
Thumbnail
有個簡單的方法,把儲存格的文字串連起來!一起來看看怎麼做,很好操作唷!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇內容,將會講解什麼是資料型態,以及與資料型態相關的知識。包括資料型態的簡介、實數、布林值、 字串、陣列。
Thumbnail
【這個系列,目標是以比較輕鬆的方式讓大家一起學習AE表達式。】 本文是番外篇 3,主要是一些概念的補充,介紹陣列。
Thumbnail
有個簡單的方法,把儲存格的文字串連起來!一起來看看怎麼做,很好操作唷!