欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

全面總結(jié)Javascript對(duì)數(shù)組對(duì)象的各種操作

 更新時(shí)間:2017年01月22日 15:36:18   投稿:daisy  
最近有個(gè)同事問(wèn)了個(gè)問(wèn)題,關(guān)于數(shù)組,對(duì)象和類數(shù)組的,仔細(xì)說(shuō)起來(lái)都是基礎(chǔ),其實(shí)都沒(méi)什么好講的,不過(guò)看到還是有很多朋友有些迷糊,決定還是寫出來(lái)吧,下面這篇文章主要給大家介紹了Javascript對(duì)數(shù)組對(duì)象的各種操作,需要的朋友可以參考借鑒。

數(shù)組

數(shù)組定義:簡(jiǎn)而言之就是一組有序的數(shù)據(jù)集合,其索引為從0開(kāi)始且自然增長(zhǎng)的整數(shù),其元素值可以是任何js數(shù)據(jù)!并且包含一個(gè)名為length的屬性,該屬性表示數(shù)組元素的個(gè)數(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ù)組的長(zhǎng)度,也可以截取,清空數(shù)組,如果設(shè)置的值比其當(dāng)前值小,數(shù)組將被截?cái)?,其尾部的元素將丟失。

如果設(shè)置的值比它的當(dāng)前值大,數(shù)組的長(zhǎng)度將增大,新的元素被添加到數(shù)組的尾部,它們的值為 undefined:

var arr=[“11″,”22″,”33″]; 
arr.length //3,返回?cái)?shù)組的長(zhǎng)度 
arr.length = 2 //['11','22'],截取數(shù)組前2個(gè) 
arr.length = 5 //['11','22',undefined,undefined,undefined],自動(dòng)添加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ù)組末尾增加一個(gè)或多個(gè)元素,其返回值為增加元素后數(shù)組的長(zhǎng)度。

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ù)組開(kāi)頭增加一個(gè)或多個(gè)元素,其返回值為增加元素后數(shù)組的長(zhǎng)度。

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ù)組的末尾開(kāi)始刪除,返回值為被刪除元素的值。

var arr=[1,2,3]; 
arr.pop() 
console.log(arr) //[1,2] 

shift() 從數(shù)組的開(kāi)頭開(kāi)始刪除,返回值為被刪除元素的值。

var arr=[1,2,3]; 
arr.shift() 
console.log(arr) //[2,3] 

五、join() 將數(shù)組通過(guò)指定的分隔符進(jìn)行分隔,返回值為string類型,不改變?cè)瓟?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; 
}); 
//隨機(jī)排序 
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ù)組中返回選定的元素,不改變?cè)瓟?shù)組

一個(gè)參數(shù),從start下標(biāo)處開(kāi)始直到結(jié)尾處。

有兩個(gè)參數(shù),從 start下標(biāo)到end下標(biāo)(不包括該元素)處的數(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()

一個(gè)參數(shù),刪除從start下標(biāo)處開(kāi)始直到結(jié)尾處。返回刪除的數(shù),這個(gè)直接修改原數(shù)組。

有兩個(gè)參數(shù),刪除從start下標(biāo)到end下標(biāo)處的數(shù)組元素,返回刪除的數(shù),這個(gè)直接修改原數(shù)組。

有三個(gè)參數(shù),從start下標(biāo)到end下標(biāo)的元素替換成第三個(gè)參數(shù),如果前兩個(gè)數(shù)相同,則是替換,這個(gè)直接修改原數(shù)組:

var arr=[2,8,3,4,12,56]; 
//從下標(biāo)2的位置開(kāi)始截取 
console.log(arr.splice(2)) // [3, 4, 12, 56] 
console.log(arr)  // [2, 8] 
 
var arr=[2,8,3,4,12,56]; 
//刪除下標(biāo)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]; 
//替換下標(biāo)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]; 
//把下標(biāo)1到3的位置刪除,并插入qqq 
console.log(arr.splice(1,3,'qqq')) //[8, 3, 4] 
console.log(arr) // [2, “qqq”, 12, 56] 

十一、concat() 可以將兩個(gè)數(shù)組合并成一個(gè)新數(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 屬性,直接對(duì)數(shù)組的原型進(jìn)行更改或者添加功能:

//比如我們給數(shù)組添加一個(gè)求和的方法 
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

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。

相關(guān)文章

最新評(píng)論