前端Js常見的數(shù)組函數(shù)集合
1、instanceof() : 檢測一個對象是否是數(shù)組(用來對付復(fù)雜數(shù)據(jù)類型)
var arr = [1,2,3];
console.log(arr instanceof Array);? // 返回值為: ture? arr屬不屬于Array(數(shù)組)類型? ?
2、valueOf(): 返回數(shù)組本身
var arr = ["aaa","bbb","ccc"];
console.log(arr.valueOf());? // 返回值為: ["aaa","bbb","ccc"]
3、把數(shù)組變成字符串
(1).toString()?
var arr = ["aaa","bbb","ccc"];
console.log(arr.toString());? // 返回值為: aaa,bbb,ccc
(2).join()? ? 把數(shù)組中的所有元素放入一個字符串
var arr = ["aaa","bbb","ccc"];
var array = arr.join('');? // ' ' 中加間隔符? 為空默認(rèn)不加
console.log(array);? //返回值為:aaabbbccc
4-1、push(): 在數(shù)組的最末尾添加元素
var arr = [1,2,3];
var aaa = arr.push("abc"); //在數(shù)組的最末尾添加一個元素
console.log(arr); // 返回值為: [1,2,3,abc]
console.log(aaa); // 返回值為: 4? 返回值是數(shù)組的長度
4-2、pop(): 在數(shù)組的最末尾刪除一項(不需要參數(shù))
var arr = [1,2,3];
var aaa = arr.pop(); // 在數(shù)組的最末尾刪除一個元素
console.log(arr); // 返回值為: [1,2]
console.log(aaa); // 返回值為: 3? 返回值是被刪除的那一項
5-1、unshift(): 在數(shù)組的最前面添加一個元素
var arr = [1,2,3];
var aaa = arr.unshift("abc"); //在數(shù)組的最前面添加一個元素
console.log(arr); // 返回值為: [abc,1,2,3]?
console.log(aaa); // 返回值為: 4? 返回值是數(shù)組的長度
5-2、shift(): 在數(shù)組的最前面刪除一項(不需要參數(shù))
var arr = [1,2,3];
var aaa = arr.shift(); // 在數(shù)組的最前面刪除一個元素
console.log(arr); // 返回值為: [2,3]
console.log(aaa); // 返回值為: 1? 返回值是被刪除的那一項
6、reverse(): 數(shù)組反向輸出
var arr1 = [1,2,3,4,5];
var aaa = arr1.reverse(); // 返回值為: [5,4,3,2,1]
7、sort(): 數(shù)組排序 (默認(rèn)順序:按照首個字符的Unicode編碼排序,從小到大)
(1).默認(rèn)排序
var arr1 = [4,5,1,3,2,7,6];
var aaa =arr1.sort();
console.log(aaa);? // 返回值為: [1, 2, 3, 4, 5, 6, 7]
(2).自定義排序
var arr2 = [4,5,1,13,2,7,6];
//回調(diào)函數(shù)里面返回值如果是: 參數(shù)1-參數(shù)2:升冪;? 參數(shù)2-參數(shù)1:降冪
arr.sort(function (a,b) {
return a-b; // 升序
? ? // return b-a; // 降序
});
console.log(arr2); // a-b返回值為:[1, 2, 4, 5, 6, 7, 13]? b-a返回值為:
8、concat() 拼接數(shù)組
var arr1 = [1,2,3];
var arr2 = ["a","b","c"];
var arr3 = arr1.concat(arr2);
console.log(arr3)? // 返回值為: [1, 2, 3, "a", "b", "c"]
9、slice() 數(shù)組截取? 形式:slice(開始位置的數(shù)組下標(biāo) ,結(jié)束位置的數(shù)組下標(biāo))
var arr = [1, 2, 3, "a", "b", "c"];
console.log(arr.slice(3));? // 返回值為: ["a", "b", "c"]? 從下標(biāo)為3(包括第3個)的開始截取到最后
console.log(arr.slice(0,3)); // 返回值為:[1, 2, 3]? 從下標(biāo)為0(包括第0個)的開始截取3個
console.log(arr.slice(-2)); // 返回值為: ["b", "c"]? 負(fù)數(shù)是從最后往前截取 -2就是截取到倒數(shù)第二個
console.log(arr.slice(3,0)); // 返回值為: [ ]? 如果前面的比后面的大,那么就是[ ];
10、splice() 數(shù)組的替換和刪除? 形式:splice(開始下標(biāo)值,刪除個數(shù),替換內(nèi)容1,替換內(nèi)容2,...)
(1).刪除
var arr = [1,2,3,4,5,6,"a", "b", "c"]
arr.splice(5);? // 從下標(biāo)值為5(包括第5個)的開始刪除到最后
console.log(arr); // 返回值為: [1, 2, 3, 4, 5]
console.log(arr);? // 返回值為:[1,4,5,6,"a", "b", "c"]
(2).替換
var arr = [1,2,3,4,5,6,"a", "b", "c"];
console.log(arr.splice(3,3,"aaa","bbb","ccc"));? //從下標(biāo)值為3(包括第3個)的開始刪除3個并且替換掉刪除的
console.log(arr);? // 返回值為:[1, 2, 3, "aaa", "bbb", "ccc", "a", "b", "c"]
11、indexOf() / lastIndexOf()? 查元素在數(shù)組中的下標(biāo)值
var arr = ["a","b","c","d"];arr.splice(1,2);? // 從下標(biāo)值為1(包括第1個)的開始刪除2個(刪除指定位置指定個數(shù))
console.log(arr.indexOf("b")); //返回值為:1? (從前往后查詢)查到以后立刻返回
console.log(arr.lastIndexOf("d")); //返回值為:6? (從后往前查詢)查到以后立刻返回
console.log(arr.indexOf("xxx")); // 返回值為:-1? 查不到就返回-1
12、filter()? 數(shù)組過濾函數(shù)
var arr = [111,222,333,444,555];
var newArr = arr.filter( function (element, index, array) {
? ? //篩選能被2整除的元素? 組成新數(shù)組
? ? if( element%2 === 0 ){
? ? ? return true;
? ? }else{
? ? ? return false;
? ? }
})
console.log( newArr ); // 返回值為:[222, 444]
13、forEach()? 數(shù)組循環(huán)(和for循環(huán)一樣;沒有返回值;)
var arr = [111,222,333,444,555];
var sum = 0;
var aaa = arr.forEach(function (element,index,array) {
? ? console.log(element); // 返回值為:輸出數(shù)組中的每一個元素
? ? console.log(index); // 返回值為:數(shù)組元素對應(yīng)的索引值
? ? console.log(array); // 返回值為:[111, 222, 333, 444, 555]
? ? sum += element; // 數(shù)組中元素求和;
});
console.log(sum); // 返回值為:1665 數(shù)組元素加起來的和
console.log(aaa); // 返回值為:undefined? 因為沒有返回值 所以返回undefined
14、map()? 對數(shù)組中每一項運行回調(diào)函數(shù),返回該函數(shù)的結(jié)果組成的新數(shù)組(return什么新數(shù)組中就有什么; 不return返回undefined; 對數(shù)組二次加工)
var arr = [111,222,333,444,555];
var newArr = arr.map(function (element, index, array) {
? ? if(index == 2){
? ? ? return element; // 這里return了 所以下面返回的值是333
? ? }
? ? console.log(newArr); // 返回值為: [undefined, undefined, 333, undefined, undefined]
? ? return element*100; // 返回的元素值都乘上100后的值
})
console.log(newArr); // 返回值為:[11100, 22200, 333, 44400, 55500]
15、some()? 對數(shù)組中每一項運行回調(diào)函數(shù),如果該函數(shù)對某一項返回true,則some返回true
var arr = [111,222,333,444,555];
var bool = arr.some(function (ele,i,array) {
? ? //判斷數(shù)組中是否有3的倍數(shù)(只要有一個是就返回true)
? ? if(ele%3 == 0){
? ? ? return true;
? ? }
? ? return false;
})
console.log(bool); //返回值為:true ; 有一個成功就是true
如有補(bǔ)充歡迎留言!