陣列的越界
當縮印乙個不存在的下標時,稱之為陣列越界,得到的結果是undefined
陣列和物件型別的遍歷(for)
整數陣列/字串陣列/物件陣列/二維陣列
遍歷: 就是把陣列中的每個元素從頭到尾都訪問一次(類似我們每天早上學生的點名)。
我們可以通過 for 迴圈索引遍歷陣列中的每一項
var arr =
['red'
,'green'
,'blue'];
for(
var i =
0; i < arr.length; i++
)for in
for(var i in arr)i 是下標; 但這裡的下標i是字串
forin 的特點
結合上面的兩個例子,分析得出:
for...
in 迴圈返回的值都是資料結構的 鍵值名。
遍歷物件返回的物件的key值,
遍歷陣列返回的陣列的下標
(key)。
for...
in 迴圈不僅可以遍歷數字鍵名,還會遍歷原型上的值和手動新增的其他鍵。如——例3
特別情況下,
for...
in 迴圈會以任意的順序遍歷鍵名
總結一句:
forin 迴圈特別適合遍歷物件。
無法遍歷偽陣列
for in 遍歷物件
for(
var i in obj) i是屬性名;這裡的i也是字串
for of
(es6
)for(var v of arr)v 是屬性值
不能遍歷物件
forof 特點
forof 迴圈用來獲取一對鍵值對中的值,而 for
in 獲取的是 鍵名
乙個資料結構只要部署了 symbol.iterator 屬性, 就被視為具有 iterator介面, 就可以使用 for
of迴圈。
物件,沒有 symbol.iterator這個屬性,所以使用 for
of會報 obj is not iterable
forof 不同與 foreach, 它可以與 break、continue和return 配合使用,也就是說 for
of 迴圈可以隨時退出迴圈。
提供了遍歷所有資料結構的統一介面
也不能遍歷偽陣列
只要有 iterator 介面的資料結構,都可以使用 for
of迴圈。
陣列 array
map結構
set結構
string
arguments物件
nodelist物件, 就是獲取的dom列表集合
讓物件可以使用 for
of迴圈怎麼辦?使用 object.
keys
() 獲取物件的 key值集合後,再使用 for
of陣列的排序(冒泡,選擇)
陣列的氣泡排序
思路分析:在要排序的一組數中,對當前還未排好的序列,從前往後對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。
即:每當兩相鄰的數比較後發現它們的排序與排序要求相反時,就將它們互換。
var arr =[5
,1,3
,2,4
];//1,5,3,2,4
//1 , 3,5,2,4
//1,3 2,5,4
//1,3,2 4, 5
//外層迴圈 執行4 次,每次找到乙個最大的數字放在 尾部
for(
var i=
0;i1;i++)}
}選擇排序
思路分析:選擇排序和氣泡排序類似,跟冒泡不同之處在於,它不是每比較一次就調換位置,
而是一輪比較完畢,找到最大值
(或者最小值)之後,將其放在正確的位置,其他數的位置不變。
//選擇排序 ,每次選擇乙個最小值 ,放特定位置上
//外層控制比較輪數,每輪找到最小值 跟i位置上的元素進行交換
for(
var i=
0;i1;i++)}
//確定了最小值以後需要給 i位置上的元素進行交換
if(minindex != i)
}
菜鳥機器學習的逆襲之路 day2
今天家裡人實在忍受不了我在家裡不學習的日子,於是下了血本。爸爸說陪著我學習,我學多久他就陪我學多久。哎,看到爸爸看書的樣子還是蠻心疼的。今天看了吳恩達第一部分的機器學習,寫一下自己還記得的東西,一是回顧,二是怕自己忘了這些知識。總結部分如下 監督學習 給機器樣本和結論,讓機器學習一種演算法可以適應這...
Python入門到逆襲2 利器篇
本章節主要來搭建後面學習和實操所需要的環境,雖然可以直接在華為雲 阿里雲上直接買個centos的虛擬機器直接使用就行了 並且成本也很低,幾毛錢一小時 但是多學習和了解 實練習一下也總是好的,在後面的工作中,也是一種優勢。這裡主要搭建centos系統作為開發環境,在工作中,從事後台開發工作的人員,雖然...
Java菜鳥逆襲之基礎語法下
前提知識點2 原碼,反碼,補碼 有符號資料表示法 在計算機內,有符號數有3種表示法 原碼 反碼和補碼。所有資料的運算都是採用補碼進行的。原碼 就是二進位制定點表示法,即最高位為符號位,0 表示正,1 表示負,其餘位表示數值的大小。反碼 正數的反碼與其原碼相同 負數的反碼是對其原碼逐位取反,但符號位除...