歡迎您光臨本站 註冊首頁

JavaScript內置對象之Array的使用小結

←手機掃碼閱讀     niceskyabc @ 2020-05-13 , reply:0

數組的創建方式:
1.字面量:
放置一個數值時,就是一個數據。
var arr = [6];
2.構造函數:
放置一個數據時,表示長度或數據的個數,空表示undefined。
var arr = new Array(6);
建議:Array作為構造函數,行為很不一致。因此,不建議使用它生成新數組,直接使用數組字面量是更好的做法。
數組的操作:
1.push();
用於在數組的末端添加一個或多個元素,並返回添加新元素後的數組長度。
注意,該方法會改變原數組
var arr = [1,2,3]; console.log(arr.push("hello")); //4 console.log(arr); //[1,2,3,"hello"]---原數組改變 console.log(arr.push("a","b")); //6 console.log(arr); //[1,2,3,"hello","a","b"]---原數組改變
2.pop();
用於刪除數組的最後一個元素,並返回該元素。對空數組使用pop方法,不會報錯,而是返回undefined。
注意,該方法會改變原數組
var arr = [1,2,3]; console.log(arr.pop()); //3 console.log(arr); //[1,2] →原數組改變
3.concat();
合併數組。
注意,該方法不會改變原數組
var arr1 = [1,2,3] var arr2 = arr1.concat(); console.log(arr1); //[1,2,3]→→原數組 console.log(arr1 === arr2); //false console.log(arr2); //[1,2,3]→→原數組的副本 console.log(arr1.concat("hello","world")); //[1,2,3,"hello","world"] console.log(arr1.concat(["a","b"],[[3,4],{"name":"admin"}])); //[1,2,3,"a","b",[3,4],{"name":"admin"}] console.log(arr1); //[1,2,3]→→原數組未改變
4.shift();
用於刪除數組的第一個元素,並返回該元素。
注意,該方法會改變原數組
var arr = [1,2,3] console.log(arr.shift()); //1 console.log(arr); //[2,3]→→原數組改變
5.unshift();
用於在數組的第一個位置添加元素,並返回添加新元素後的數組長度。
注意,該方法會改變原數組
var arr = [1,2,3]; console.log(arr.unshift("hello")); //4 console.log(arr); //["hello",1,2,3]→→原數組改變 console.log(arr.unshift("a","b")); //6 console.log(arr); //["a","b","hello",1,2,3]→→原數組改變
6.slice();
用於複製目標數組的一部分,返回一個新數組。
注意,該方法不會改變原數組。
如果slice方法的參數是負數,則表示倒數計算的位置;如果第一個參數大於等於數組長度,或者第二個參數小於第一個參數,則返回空數組。
var arr = ["a","b","c","d","e"]; console.log(arr.slice(1,3)); //["b","c"] console.log(arr.slice(1)); //["b","c","d","e"] console.log(arr.slice(-4,-1)); //["b","c","d"] console.log(arr.slice(-2)); //["d","e"] console.log(arr.slice(1,-2)); //["b","c"] console.log(arr); //["Tom","Jack","Lucy","Lily","May"]→→原數組未改變
7.splice();
用於刪除原數組的一部分成員,並可以在刪除的位置添加新的數組成員,返回值是被刪除的元素。
注意,該方法會改變原數組。
起始位置如果是負數,則表示從倒數位置開始刪除。
①不傳參時:無操作;
var arr = ["a","b","c","d","e"]; console.log(arr.splice()); //[] console.log(arr); //["a","b","c","d","e"]→→無操作
②只傳入start:表示從索引為start的數據開始刪除,直到數組結束;
var arr = ["a","b","c","d","e"]; console.log(arr.splice(2)); //["c", "d", "e"] console.log(arr); //["a", "b"]→→原數組改變
③傳入start和num:表示從索引為start的數據開始刪除,刪除num個;
var arr = ["a","b","c","d","e"]; console.log(arr.splice(2,2)); //["c", "d"] console.log(arr); //["a", "b", "e"]→→原數組改變
④傳入更多:表示從索引為start的數據開始刪除,刪除num個,並將第三個參數及後面所有參數,插入到start的位置;
var arr = ["a","b","c","d","e"]; console.log(arr.splice(2,2,"f","g")); //["c", "d"] console.log(arr); //["a", "c", "f", "g", "e"]---原數組改變
8.reverse();
用於顛倒排列數組元素,返回改變後的數組(還是原數組)。
注意,該方法將改變原數組
var arr = [a,b,c]; console.log(arr.reverse()); //[c,b,a] console.log(arr); //[c,b,a]→→原數組改變
9.sort();
對數組成員進行排序,默認是按照字典順序排序。排序後,原數組將被改變;
注意:sort方法不是按照大小排序,而是按照字典順序。也就是說,數值會被先轉成字符串,再按照字典順序進行比較,例如:121排在13的前面;如果想讓sort方法按照自定義方式排序,可以傳入一個函數作為參數。
[10111,1101,111].sort(function(a,b){ return a - b; // 升序 // return b - a; // 降序 }) // [111,1101,10111]
10.join();
以指定參數作為分隔符,將所有數組成員連接為一個字符串返回。如果不提供參數,默認用逗號分隔;
注意, 該方法不會改變原數組;
如果數組成員是undefined或null或空位,會被轉成空字符串。
var arr = [a,b,c]; console.log(arr.join()); // a,b,c console.log(arr.join("*")); // a*b*c console.log(arr); //[1,2,3]→→原數組未改變
11.for- in();
遍歷語句,類似於循環,但for-in可以遍歷沒有索引的集合,也被成為枚舉。
for(var i in arr) i是下標;
for(var i in obj) i是屬性名.
補充:
push和pop結合使用,就構成了“後進先出”的棧結構(stack);
push和shift結合使用,就構成了“先進先出”的隊列結構(queue)。


[niceskyabc ] JavaScript內置對象之Array的使用小結已經有108次圍觀

http://coctec.com/docs/javascript/show-post-234251.html