色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript中棧

劉若蘭1年前7瀏覽0評論

關于JavaScript中棧的介紹

在JavaScript中,棧是一種常用的數據結構,它采取先進后出的方式,就像我們日常生活中使用的書架,最新讀的書本放在最上面,而最底下的那本則是最早讀過的。棧在JavaScript中應用廣泛,在算法、瀏覽器的歷史記錄和表單提交等方面都有用到。

棧的基本概念

棧是一種特殊的數組,它只能在一端插入和刪除元素。在棧中,插入新元素的操作被稱為“壓?!保瑒h除元素的操作則稱為“彈?!被颉俺鰲!?。最后進入棧中的元素總是最先被取出,這一點非常重要。

// 創建棧
const stack = [];
// 入棧
stack.push(1);
stack.push(2);
stack.push(3);
// 出棧
stack.pop(); // 3

棧的應用

在JavaScript中,棧廣泛應用于算法,比如查找最短路徑、括號匹配等。下面是一個使用棧實現括號匹配的例子:

function isBalanced(str) {
const stack = [];
for (let i = 0; i < str.length; i++) {
if (str[i] === '(') {
stack.push(str[i]);
} else if (str[i] === ')') {
if (stack.length === 0) {
return false;
} else {
stack.pop();
}
}
}
return stack.length === 0;
}
console.log(isBalanced('(())')); // true
console.log(isBalanced('((((()))))')); // true
console.log(isBalanced('()()())')); // false

瀏覽器的歷史記錄

在瀏覽器中,歷史記錄就是一個棧的結構。每次訪問一個頁面,就將該頁面的URL壓入棧頂,當用戶點擊后退按鈕時,就將棧頂的URL彈出,然后顯示該頁面。下面是一個簡單的例子:

const history = [];
// 用戶訪問頁面
history.push('https://www.google.com');
// 用戶訪問另一個頁面
history.push('https://www.amazon.com');
// 用戶后退
history.pop();

表單的提交

當我們在表單中填寫完數據后,點擊提交按鈕會觸發表單提交事件。在提交前,我們可以使用棧來檢查表單中的數據是否合法,如果不合法則彈出錯誤信息,直到棧為空,表示表單數據都通過了檢查。

const form = document.querySelector('form');
const errorStack = [];
form.addEventListener('submit', (event) => {
if (!form.username.value) {
errorStack.push('請輸入用戶名!');
}
if (!form.password.value) {
errorStack.push('請輸入密碼!');
}
if (errorStack.length > 0) {
event.preventDefault();
alert(errorStack.pop());
}
});

總結

在JavaScript中,棧是一種基本的數據結構,采用先進后出的方式。棧在算法、瀏覽器的歷史記錄和表單提交等方面都有廣泛應用。

上一篇php sql降序
下一篇php sql類