全面總結Javascript對數(shù)組對象的各種操作
數(shù)組
數(shù)組定義:簡而言之就是一組有序的數(shù)據(jù)集合,其索引為從0開始且自然增長的整數(shù),其元素值可以是任何js數(shù)據(jù)!并且包含一個名為length的屬性,該屬性表示數(shù)組元素的個數(shù)!
一、定義數(shù)組,有三種定義方式:
方式一:
var arr=new Array(); arr[0]=“11”; arr[1]=“22”; arr[2]=“33”;
方式二:
var arr=new Array(“11”,“22”,“33”);
方式三:
var arr=[“11”,“22”,“33”];
二、數(shù)組的length屬性,可以獲取數(shù)組的長度,也可以截取,清空數(shù)組,如果設置的值比其當前值小,數(shù)組將被截斷,其尾部的元素將丟失。
如果設置的值比它的當前值大,數(shù)組的長度將增大,新的元素被添加到數(shù)組的尾部,它們的值為 undefined:
var arr=[“11″,”22″,”33″]; arr.length //3,返回數(shù)組的長度 arr.length = 2 //['11','22'],截取數(shù)組前2個 arr.length = 5 //['11','22',undefined,undefined,undefined],自動添加undefined arr.length = 0 //[],清空數(shù)組
三、遍歷數(shù)組:
var arr=[“11”,“22”,“33”]; //for循環(huán) for(var i=0;i<arr.length;i++){ console.log(i) } //for in循環(huán) for( i in arr ){ console.log(arr[i]) } //forEach循環(huán) arr.forEach(function(i){ console.log(i) })
四、數(shù)組的添加和刪除:
push()
向數(shù)組末尾增加一個或多個元素,其返回值為增加元素后數(shù)組的長度。
var arr=[1,2,3]; arr.push(4) console.log(arr) //[1,2,3,4] arr.push(5,6,7) console.log(arr) //[1,2,3,4,5,6,7]
unshift()
向數(shù)組開頭增加一個或多個元素,其返回值為增加元素后數(shù)組的長度。
var arr=[1,2,3]; arr.unshift(4) console.log(arr) //[4,1,2,3] arr.unshift(5,6,7) console.log(arr) //[5,6,7,1,2,3,4]
pop()
從數(shù)組的末尾開始刪除,返回值為被刪除元素的值。
var arr=[1,2,3]; arr.pop() console.log(arr) //[1,2]
shift()
從數(shù)組的開頭開始刪除,返回值為被刪除元素的值。
var arr=[1,2,3]; arr.shift() console.log(arr) //[2,3]
五、join() 將數(shù)組通過指定的分隔符進行分隔,返回值為string類型,不改變原數(shù)組:
var arr=[1,2,3,4]; arr.join(‘-‘) //”1-2-3-4″ arr.join(”) //”1234″ arr.join(‘ ‘) //”1 2 3 4″
六、sort() 數(shù)組排序:
var arr=[2,8,3,4,12,56]; //從小到大排序 arr.sort(function(a,b){ return a-b; }); //從大到小排序 arr.sort(function(a,b){ return b-a; }); //隨機排序 arr.sort(function(a,b){ return Math.random() – 0.5 })
七、reverse() 將數(shù)組逆序:
var arr=[2,8,3,4,12,56]; arr.reverse() //[56, 12, 4, 3, 8, 2]
八、獲取數(shù)組中最大和最小的數(shù)字:
var arr = [5, 458 , 120 , -215 , 228 , 400]; var max = Math.max.apply(Math, arr); var min = Math.min.apply(Math, arr);
九、slice() 可從已有的數(shù)組中返回選定的元素,不改變原數(shù)組
一個參數(shù),從start下標處開始直到結尾處。
有兩個參數(shù),從 start下標到end下標(不包括該元素)處的數(shù)組元素:
var arr=[2,8,3,4,12,56]; arr.slice(1) //[8, 3, 4, 12, 56] arr.slice(1,5) //[8, 3, 4, 12]
十、splice()
一個參數(shù),刪除從start下標處開始直到結尾處。返回刪除的數(shù),這個直接修改原數(shù)組。
有兩個參數(shù),刪除從start下標到end下標處的數(shù)組元素,返回刪除的數(shù),這個直接修改原數(shù)組。
有三個參數(shù),從start下標到end下標的元素替換成第三個參數(shù),如果前兩個數(shù)相同,則是替換,這個直接修改原數(shù)組:
var arr=[2,8,3,4,12,56]; //從下標2的位置開始截取 console.log(arr.splice(2)) // [3, 4, 12, 56] console.log(arr) // [2, 8] var arr=[2,8,3,4,12,56]; //刪除下標1到5的位置 console.log(arr.splice(1,5)) //[8, 3, 4, 12, 56] console.log(arr) // [2] var arr=[2,8,3,4,12,56]; //替換下標1的位置 console.log(arr.splice(1,1,'qqq')) //[8] console.log(arr) //[2, “qqq”, 3, 4, 12, 56] var arr=[2,8,3,4,12,56]; //把下標1到3的位置刪除,并插入qqq console.log(arr.splice(1,3,'qqq')) //[8, 3, 4] console.log(arr) // [2, “qqq”, 12, 56]
十一、concat() 可以將兩個數(shù)組合并成一個新數(shù)組返回:
var arr1=[1,2,3,4,5]; var arr2=[6,7]; var arr3=arr1.concat(arr2); alert(arr1);// [1,2,3,4,5] alert(arr2);// [6,7] alert(arr3);// [1,2,3,4,5,6,7]
十二、數(shù)組去重:
方法一:
function removeRepeat(arr){ return arr.filter(function(elem, pos) { return arr.indexOf(elem) == pos; }); }
方法二:
function removeRepeat(a){ var arr=[]; for(var i=0;i<a.length;i++){ if(arr.indexOf(a[i]) === -1){ arr.push(a[i]); } } return arr; }
方法三:
function removeRepeat(a){ var arr = []; a.forEach(function(i){ if(arr.indexOf(i) === -1){ arr.push(i); } }); return arr }
方法四:
function removeRepeat(arrs){ var newArr = []; var hash = {}; for(var i=0;i<arrs.length;i++){ var key = typeof(arrs[i])+arrs[i]; if(hash[key] !==1){ newArr.push(arrs[i]); hash[key] =1; }; }; return newArr; }
十二、prototype 屬性,直接對數(shù)組的原型進行更改或者添加功能:
//比如我們給數(shù)組添加一個求和的方法 Array.prototype.sum= function(){ var n = 0; this.forEach(function(i){ n+=i; }); return n; } var arr = [1,2,3,4] alert(arr.sum()) //10
總結
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
相關文章
微信小程序使用for循環(huán)動態(tài)渲染頁面操作示例
這篇文章主要介紹了微信小程序使用for循環(huán)動態(tài)渲染頁面操作,結合實例形式分析了微信小程序使用for語句獲取data數(shù)據(jù)渲染頁面相關操作技巧,需要的朋友可以參考下2018-12-12為什么JS中eval處理JSON數(shù)據(jù)要加括號
這篇文章主要介紹了為什么JS中eval處理JSON數(shù)據(jù)要加括號的相關資料,需要的朋友可以參考下2015-04-04js和jquery中循環(huán)的退出和繼續(xù)下一個循環(huán)
退出循環(huán),使用break;退出當前循環(huán)繼續(xù)下一個循環(huán),使用continue,jquery中使用return false;continue,使用return true2014-09-09