溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用Javascript怎么對數(shù)組對象進行操作

發(fā)布時間:2021-01-04 15:58:09 來源:億速云 閱讀:138 作者:Leah 欄目:web開發(fā)

使用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è)置的值比它的當前值大,數(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下標處開始直到結(jié)尾處。

有兩個參數(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下標處開始直到結(jié)尾處。返回刪除的數(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)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI