JS數組常用操作方法

1、join();
用法:將數組中的所有元素都轉化爲字符串,並連接在一起;

var a = [1,2,3,4];
console.log(a.join('-')); //1-2-3-4

2、reverse()
用法:將數組中的元素顛倒順序.

var a = [1,2,3,4];
console.log(a.reverse()); // [4, 3, 2, 1]

3、concat()
用法:拼接多個數組,並返回全新的數組,原數組不受影響;

var a = [1,2];
var b = [10,20];
console.log(a.concat(b)); //[1, 2, 10, 20]

4、slice()
用法:截取數組生成新數組,原數組不受影響;
返回的數組**第一個參數指定的位置(包含)和第二個參數指定的位置(不包含)**之間的所有元素,如果指定參數爲負數,則從數組的最後一個元素開始,如果只有一個參數,則表示到數組的末尾;

var aa = [1,2,3,4,5,6];
console.log(aa.slice(2)); //[3,4,5,6]
console.log(aa.slice(2,8)); //[3,4,5,6] 超過最大長度,只顯示到最後結果
console.log(aa.slice(2,5)); //[3,4,5]
console.log(aa.slice(2,-1)); //[3,4,5] 相對於倒數第一個之前
console.log(aa.slice(2,-2)); //[3,4] 相對於倒數第二個之前
console.log(aa.slice(3)); //[4,5,6] 一個參數從第三個到最後
console.log(aa.slice(-2));//[5,6] 一個參數負值從倒數第二個到最後

5、splice()
用法:從數組中添加、刪除項目,然後返回被刪除的項目。該方法會改變原始數組,
語法:

array.splice(index,howmany,item1,...,itemX)
var aa = [1,2,3,4,5,6];
console.log(aa.splice(4)); //[5,6]  返回刪除後的數組
aa; // [1,2,3,4]
console.log(aa.splice(2,2)); //[3,4] 從第二位起刪除兩個元素
aa; //[1,2]
console.log(aa.splice(1,0,7,8)); //[]從第一位起刪除0個元素,添加7,8到原數組
aa;//[1,7,8,2]

6、push()
用法:在數組的末尾添加一個或者多個元素,並返回新的數組長度;

7、pop()
用法:刪除並返回最後一個元素,且把數組的長度減1,並返回它刪除的元素的值,如果數組爲空,則不改變數組,並返回undefined;

8、shift()
用法:把數組的第一個元素從其中刪除,並返回第一個元素的值,
說明:如果數組是空的,那麼 shift() 方法將不進行任何操作,返回 undefined 值。請注意,該方法不創建新數組,而是直接修改原有的 arrayObject。該方法會改變原數組的長度;

9、unshift()
用法:相數組開頭添加一個或多個元素,並返回新長度;

10、toString()
用法:可把一個邏輯值或數組轉換爲字符串,並返回結果。

console.log( [1,2,3].toString() );  //1,2,3
console.log( typeof(true.toString()) );  //string

11、toLocalString()
用法:使用地區特定的分隔符把生成的字符串連接起來,形成一個字符串。

var date = new Date();
console.log(date.toString());  // Wed May 27 2020 11:20:04 GMT+0800 (中國標準時間)
console.log(date.toLocaleString()); //2020/5/27 上午11:20:04

12、indexOf()
用法:返回某個指定的字符在字符串中首次出現的位置。沒查到返回-1

console.log(['a','b','c','d'].indexOf('a'));   //1

13、lastIndexOf()
用法:從數組的末尾開始查找,返回某個指定字符串首次出現的位置(即索引值),索引值永遠是正序的索引值,沒有查找到返回-1

console.log(['a','b','c','d'].lastIndexOf('d'));   //4

14、forEach()
定義:從頭至尾遍歷數組,爲每個元素調用指定函數,改變元素的同時數組內的相應值也會改變,輸入爲一個待遍歷函數,函數的參數依次爲:數組元素、元素的索引、數組本身,沒有返回值

let a = ['a','b','c','d',];
a.forEach(function(e,index,arr){
	console.log(e);  //單個元素
	console.log(index); //該元素的索引值
	console.log(arr);  //數組
})

15、map()
定義:用的數組的每一個元素傳遞給指定的函數,並返回一個新數組 ,不修改原數組

var arr = [2,3,4,5,6];
var bb= arr.map(function(x){
  return x*x;
});
console.log(bb); // [4, 9, 16, 25, 36]

16、filter()
定義:過濾功能,數組中的每一項運行給定函數,返回滿足過濾條件組成的數組。函數的參數依次爲:數組元素、元素的索引、數組本身,
注:可以去重

var a = [1,2,3,4,5,6,3,1];
a.filter(function(e,i,selfArr){
  return selfArr.indexOf(v) == i;
});
//[1, 2, 3, 4, 5, 6]

17、every()和some()
every() 判斷數組中每一項都是否滿足條件,只有所有項都滿足條件,纔會返回true。類似&&
some() 判斷數組中是否存在滿足條件的項,只要有一項滿足條件,就會返回true。類似 ||

var arr = [1, 2, 3, 4, 5, 6];
arr.every(x=>x>0);//return true;
arr.every(x=>x>5);//return false;
arr.some(x=>x>5);//return true;

18、reduce()和reduceRight()
reduce() 兩個參數:函數和遞歸的初始值。從數組的第一項開始,逐個遍歷到最後
reduceRight() 從數組的最後一項開始,向前遍歷到第一項

//可以用reduce快速求數組之和
var arr=[1,2,3,4];
arr.reduce(function(a,b){
  return a+b;
}); //10

19、sort()
定義:用於對數組的元素進行排序。在原數組上面進行修改,沒有返回值

var a = [6,4,2,8,22];
a.sort(function(x,y){
    return x - y;
})   //小->大
console.log(a);  //[2, 4, 6, 8, 22]

a.sort(function(x,y){
    return y - x;
})   //大->小
console.log(a);  [22, 8, 6, 4, 2]
var b = [  //數組對象去重
	{index:2},
	{index:7},
	{index:9},
	{index:1},
]
b.sort(function(x,y){
	return x.index - y.index;
})
console.log(b); //b = [ {index:1},{index:2},{index:7},{index:9}]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章