天天看點

數組的一些常用方法分析 介紹

###數組### 數組(Array):一組有序(資料按照一定的順序進行排練)資料的集合, 在js中,數組本質潛水就是一個 數組長度是根據數組3 的最大索引值加 1 得來的。 建立數組的兩種方式: 1 new Array([ data1,data2......]): 該函數可以接收0到n個值,這些将被作為數組的内容 2[ ] 使用 取值: 我們可以通過下标/索引的方式,來擷取數組中指定位置的資料 其實本質上就是擷取數組這個對象下的某個名稱為數字的屬性的值擷取 一個不存在的屬性,傳回的是undenfined。 周遊循環() 為什麼大部分的時候不用for in ,for in 會按照對象屬性進行周遊 ,很多時候我們需要周遊的隻是數組中以數字進行命名的?? 注意如果我們通過new Array的方式來建立一個數組,但是參數隻有一個且為 數字的時候,那麼這個時候。這個唯一數字參數,不再作為數組的值,而是作為數組的長度。。如果通過 [] 的方式,則不會有上述的問題,不管有多少個值,值的類型是什麼,都是作為數組的值 arr.length 數組的元素個數<注意:真實的元素的個數和length的值不一定相等>,一個數組的lenght = 數組最大索引值 + 1. 注意:可讀,可操作這就意味着,我們可以對一個數組的length進行修改,如果length的值被修改成小于現有數組索引的值,那麼大于修改後的length的索引的值将會被自動删除,是以,除非我們知道修改length所帶來的問題,否則不要輕易的去修改length屬性 arr.push(data1[,data2.........]) 向數組的尾部添加新資料,索引值也發生改變 傳回:Number,傳回新數組的長度 arr.unshift(data1[,data2.........]) 向數組的頭部添加新資料,索引值也發生改變 傳回:Number,傳回新數組的長度 arr.pop( ) 删除數組最後一個 原數組也會發生改變 傳回:any,被删除的元素 arr.shift() 删除數組第一個 原數組也會發生改變 傳回:any,被删除的元素 arr.splice([start, count, data1...]) 删除數組指定位置的内容,并在删除的位置添加新的資料 start: 删除的起始位置,預設0(strart包含在内) count: 要删除的元素的個數,預設0 data1...: 要添加的新的元素 傳回:Array,被删除的元素 原數組的内容會發生改變 arr.slice(start,end) 從start位置開始,到end位置結束,不包含end位置的元素 start:截取的起始位,預設為0; start: 截取的起始位置,預設0 end: 截取的結束位置,預設數組的length 傳回:Array,被截取的元素   arr.join(str)字元串和數組的轉換 把arr使用str拼接成字元串。 str:拼接符 傳回:string arr.reverse() 翻轉 數組 該方法會翻轉原有數組 傳回:翻轉後的數組 原來數組會發生改變。 arr.concat(arr arr2) 把參數數組和源數組進行拼接,形成一個新的數組 傳回:Array 原數組不會發生改變。 arr.forEach(callback) 在元素是getElementBy L類型擷取時不能使用,因為此方法為DOM方法,DOM中沒有forEach方法。nb 循環周遊數組元素 當我們調用數組的forEach方法的時候,這個方法在内部會循環該數組, 每次循環都會調用傳入callback 每次執行callback的時候,會把目前循環過程中的下标以及對應的值作為 參數再傳遞給callback callback: 函數,在forEach循環周遊的時候被調用 value: 循環過程中對應的值 index: 循環過程中對應的下标 obj: 數組本身   arr.map(callback) '循環周遊數組元素,目的,建立新數組, 根據一個已有數組建立一個新數組 傳回 Array 新數組   arr.filter(callback) 循環周遊數組元素,目的:建立新數組 根據一個已有數組建立 根據一個已有數組建立新的數組,如果回調函數傳回true,保留目前循環的原始值到新數組,如果傳回false,丢棄目前循環的原始值 傳回:Array 新的數組 arr.sort(callback ) 排序,我們可以傳入一個回調函數來設定排序規則 callback:回調函數,設定排序規則 排序:按照某種規則交換位置 内部判斷return傳回值 * 排序:交換 * 小于等于0:不交換位置 * 大于0:交換位置 * */   随機數: Math.random() 随機産生一個0-1之間的數字      

轉載于:https://www.cnblogs.com/YinWeiBlog/p/7461267.html