氣泡排序與遞迴函式
阿新 • • 發佈:2021-01-13
技術標籤:原生jsjavascript
1.js事件冒泡
概念:在一個物件上觸發某中事件的時候,如果此事件沒有被定義事件處理程式 則事件返回true,這個事件就會對這個物件的父級傳播,從裡到外,直到被處理,或著到達了物件的最頂層(document物件)
2.js氣泡排序
概念:氣泡排序就是對陣列中的相鄰的兩個元素進行比較,比如從小到大,從大到小,如果順序錯誤就把他們交換過來。直到沒有相鄰的元素需要交換,這個陣列中的元素已經排序完成
<script> let arr=[10000, 5888, 12000, 6999, 7000, 3000, 4500, 1200, 6000] for (var j = 0; j <= (arr.length - 1) - 1; j++) { for (var i = 0; i <= (arr.length - 1) - 1; i++) { if (arr[i] > arr[i + 1]) { var a = 0; a = arr[i]; arr[i] = arr[i + 1]; arr[i + 1] = a } } } console.log(arr); </script>
結果:
邏輯題:[1,50,0,5]陣列中相加等於數組裡面的值返回true或false
<script> let arr = [1, 50,0,5] function fn(arr) { for (var i = 0; i < arr.length; i++) { let key = arr[i] for (var j = 0; j < arr.length; j++) { if (arr.includes(key + arr[j + 1])) { return true } } } return false } console.log(fn(arr)) </script>
3.遞迴函式
遞迴分為 - 呼叫的過程 - 終止的過程
在沒有限制的情況下,遞迴運算會無終止地自身呼叫。因此,在遞迴運算中要結合 if 語句進行控制,只有在某個條件成立時才允許執行遞迴,否則不允許呼叫自身。
//從1加到100的遞迴函式
<script>
function fn(num) {
if (num == 1) {
return num
}
return num += fn(num - 1)
}
console.log(fn(100))
</script>