在 JavaScript 中,陣列(Array
)是一種用來存儲多個值的資料結構。陣列中的值可以是任意類型,包括數字、字串、物件、甚至其他陣列。陣列提供了許多方法來處理和操作其內部的元素。
使用字面量語法
const fruits = ["apple", "banana", "cherry"];
使用 Array
構造函數
const numbers = new Array(1, 2, 3, 4);
const emptyArray = new Array(5); // 創建一個長度為 5 的空陣列
存取元素
使用索引(從 0
開始)來存取或修改陣列中的元素。
const fruits = ["apple", "banana", "cherry"];
console.log(fruits[1]); // "banana"
fruits[1] = "blueberry";
console.log(fruits[1]); // "blueberry"
陣列長度
使用 length
屬性來獲取或設定陣列的長度。
const fruits = ["apple", "banana", "cherry"];
console.log(fruits.length); // 3
fruits.length = 2;
console.log(fruits); // ["apple", "banana"]
常用方法
push()
:向陣列末尾添加一個或多個元素。
const fruits = ["apple", "banana"];
fruits.push("cherry");
console.log(fruits); // ["apple", "banana", "cherry"]
pop()
:移除陣列末尾的元素並返回該元素。
const fruits = ["apple", "banana", "cherry"];
const lastFruit = fruits.pop();
console.log(lastFruit); // "cherry"
console.log(fruits); // ["apple", "banana"]
shift()
:移除陣列開頭的元素並返回該元素。
const fruits = ["apple", "banana", "cherry"];
const firstFruit = fruits.shift();
console.log(firstFruit); // "apple"
console.log(fruits); // ["banana", "cherry"]
unshift()
:向陣列開頭添加一個或多個元素。
const fruits = ["banana", "cherry"];
fruits.unshift("apple");
console.log(fruits); // ["apple", "banana", "cherry"]
splice()
:添加或刪除陣列中的元素。
const fruits = ["apple", "banana", "cherry"];
fruits.splice(1, 1, "blueberry", "kiwi"); // 從索引 1 開始刪除 1 個元素,並插入 "blueberry" 和 "kiwi"
console.log(fruits); // ["apple", "blueberry", "kiwi", "cherry"]
slice()
:返回陣列的淺拷貝,包含指定範圍的元素。
const fruits = ["apple", "banana", "cherry", "date"];
const newFruits = fruits.slice(1, 3);
console.log(newFruits); // ["banana", "cherry"]
forEach()
:對陣列中的每個元素執行指定的函數。
const fruits = ["apple", "banana", "cherry"];
fruits.forEach(function(fruit) {
console.log(fruit);
});
// 輸出:
// "apple"
// "banana"
// "cherry"
map()
:對陣列中的每個元素執行指定的函數,並返回新陣列。
const numbers = [1, 2, 3];
const squares = numbers.map(function(num) {
return num * num;
});
console.log(squares); // [1, 4, 9]
filter()
:過濾陣列中的元素,返回符合條件的元素的新陣列。
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.filter(function(num) {
return num % 2 === 0;
});
console.log(evenNumbers); // [2, 4]
reduce()
:將陣列中的所有元素經過指定的函數累計成一個單一的值。
const numbers = [1, 2, 3, 4];
const sum = numbers.reduce(function(total, num) {
return total + num;
}, 0);
console.log(sum); // 10
嵌套陣列:陣列可以包含其他陣列。
const matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
陣列迭代:使用 for...of
、forEach()
和其他方法來遍歷陣列。
const fruits = ["apple", "banana", "cherry"];
for (const fruit of fruits) {
console.log(fruit);
}
// 輸出:
// "apple"
// "banana"
// "cherry"
陣列在 JavaScript 中是非常靈活且強大的資料結構,支持多種方法和操作來處理資料。了解和掌握這些基本操作對於進行有效的程式設計至關重要。
在程式設計中,「傳值呼叫」(Call by Value)和「傳址呼叫」(Call by Reference)是兩種將參數傳遞給函數的方法。這兩種方法會影響函數如何處理傳遞給它的參數。以下是對這兩種方法的詳細介紹:
概念:當函數被呼叫時,函數接收的是實際參數的複本(值),而不是參數本身。這意味著在函數內部對參數進行的修改不會影響到原始的變數。
特性:
範例(以 JavaScript 為例):
function modifyValue(x) {
x = x + 1;
console.log("Inside function: x =", x);
}
let num = 5;
modifyValue(num);
console.log("Outside function: num =", num);
在上述範例中,num
的值在函數內被改變,但函數外部的 num
保持不變。