JS 數(shù)組方法總結(jié)

一、創(chuàng)建Array

創(chuàng)建數(shù)組主要有兩種方法,第一種是使用數(shù)組構(gòu)造函數(shù),第二種是使用數(shù)組字面量表示法。

  1. 使用數(shù)組構(gòu)造函數(shù)
    如:var arr = new Array();
    如果預(yù)先知道數(shù)組的長(zhǎng)度,那么也可以直接給構(gòu)造函數(shù)傳遞該長(zhǎng)度。
    如:var arr = new Array(20);
    如果知道數(shù)組中應(yīng)該包含的項(xiàng),就直接在構(gòu)造的時(shí)候,傳遞數(shù)組中的應(yīng)該包含的項(xiàng)。
    如:var arr = new Array(1,2,3);
  2. 使用數(shù)組字面量表示法
    如:var arr = [1,2,3,4];
    var arr2 = [];
二、數(shù)組的操作
  1. 數(shù)組方法
    push();----向數(shù)組末端添加數(shù)據(jù)項(xiàng);
    pop();---獲取數(shù)組的最尾部的一個(gè)數(shù)據(jù)項(xiàng);
    shift();---獲取數(shù)組的頭部一項(xiàng)的數(shù)據(jù)信息;
    unshift();--與shift完全相反,就是向數(shù)組的頭部插入數(shù)據(jù)項(xiàng)信息;
    以上方法會(huì)直接修改數(shù)組本身
var a = [{n: 1},{z:5}];
        var b = a;
        b.unshift('aa');
//a = b = ["aa",{"n":1},{"z":5}]
  1. 驗(yàn)證是否為數(shù)組
if(value instanseof Array){}
if(Array.isArray(value)){}//該方法只使用與高版本的瀏覽器:IE9+、Firefox4+/Chrome
  1. 具體的編程實(shí)例
  1. 添加元素(數(shù)組末尾添加元素,不要直接修改數(shù)組 arr,結(jié)果返回新的數(shù)組 )
//方法一:slice()和push()結(jié)合
function append(arr, item) { 
  var newArr = arr.slice(0); // slice(start, end)淺拷貝數(shù)組 
  newArr.push(item); 
  return newArr; 
}; 
//方法二:普通的迭代拷貝
function append(arr, item) { 
          var length = arr.length, 
            newArr = []; 
          for (var i = 0; i < length; i++) { 
            newArr.push(arr[i]); 
          } 
          newArr.push(item); 
          return newArr; 
        }; 
//方法三:使用concat
function append(arr, item) { 
    return arr.concat(item); 
} 

2)添加元素(添加任意位置的元素,不要直接修改數(shù)組 arr,結(jié)果返回新的數(shù)組。)

//方法一:使用普通的迭代拷貝
function insert(arr, item, index) {
            var newArr=[];
            for(var i=0;i<arr.length;i++){
                newArr.push(arr[i]);
            }
            newArr.splice(index,0,item);
            return newArr;
        } 
//方法二:slice()和splice()結(jié)合
function insert(arr, item, index) {
            var newArr=arr.slice(0);
            newArr.splice(index,0,item);
            return newArr;
        } 
//方法三:concat()和splice()結(jié)合
function insert(arr, item, index) {
            var newArr=arr.concat();
            newArr.splice(index,0,item);
            return newArr;
        } 
  1. 刪除元素(刪除數(shù)組最后一個(gè)元素,不要直接修改數(shù)組 arr,結(jié)果返回新的數(shù)組 。)
//方法一:使用普通的迭代拷貝
function truncate(arr, item) {
            var newArr=[];
            for(var i=0;i<arr.length-1;i++){
                newArr.push(arr[i]);
            }
            return newArr;
        }
//concat()和pop()結(jié)合
function truncate(arr) {
            var newArr = arr.concat();
            newArr.pop(); 
            return newArr;
        }
  1. 刪除元素(刪除數(shù)組第一個(gè)元素,不要直接修改數(shù)組 arr,結(jié)果返回新的數(shù)組 。)
//方法一:使用普通的迭代拷貝
function curtail(arr) {
            var newArr = [];
            for(var i=1;i<arr.length;i++){
                              newArr.push(arr[i]); 
                       } 
            return newArr;
        }
//concat()和shift()結(jié)合
function curtail(arr) { 
          var newArr = arr.concat(); 
          newArr.shift(); 
          return newArr; 
} 
//方法三:slice()
function curtail(arr) { 
          return arr.slice(1); 
} 
  1. 合并數(shù)組(不要直接修改數(shù)組 arr,結(jié)果返回新的數(shù)組)
//方法一:使用普通的迭代拷貝
function concat(arr1, arr2) {
            var newArr=[];
            for(var i=0;i<arr1.length;i++){
                newArr.push(arr1[i]);
            }
            for(var j=0;j<arr2.length;j++){
                newArr.push(arr2[j]);
            }
            return newArr;
        }
//方法二:concat()方法
function concat(arr1, arr2) { 
          return arr1.concat(arr2); 
} 
//方法三:slice()和push()結(jié)合
function concat(arr1, arr2) { 
        var newArr=arr1.slice(0); 
        for(var i=0;i<arr2.length;i++){ 
            newArr.push(arr2[i]); 
        } 
       return newArr; 
    } 
  1. 移除數(shù)組中的元素
//方法一:splice()方法
function remove(arr, item) { 
      var newArr = arr.slice(0); 
      for(var i=0; i<newArr.length; i++) { 
        if(newArr[i] == item) { 
          newArr.splice(i, 1); 
        } 
      } 
      return newArr; 
    } 
    var arr = [1,2,3,4,2]; 
    var item = 2; 
    console.log(remove(arr, item)); 
    console.log(arr); 
//方法二:push()方法
function remove(arr,item){ 
    var newarr = []; 
    for(var i=0;i<arr.length;i++){ 
         if(arr[i] != item){ 
         newarr.push(arr[i]); 
        } 
    } 
    return newarr; 
 } 

原文鏈接(http://blog.csdn.net/u010297791/article/details/53000603)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容