1. 程式人生 > 程式設計 >JS陣列方法slice()用法例項分析

JS陣列方法slice()用法例項分析

本文例項講述了JS陣列方法slice()用法。分享給大家供大家參考,具體如下:

slice()方法

slice(),它能基於當前陣列中的一個或多個建立一個新陣列。可以接受一或兩個引數,即要返回的起始和結束位置。

一個引數:slice()方法返回從該引數指定位置開始到當前陣列末尾的所有項。

兩個引數:該方法返回起始和結束位置之間的項(但不包括結束位置的項)。

slice不會影響原始陣列。

結束位置小於起始位置,返回空陣列。

可以接受負數,用陣列長度加上該負數來確定相應位置。

var arr = [1,2,3,'a','b','c','d'];
Array.prototype.copySlice =function() {
  var newArr = [];
  var len = this.length;
  var argLen = arguments.length;
  if(arguments.length == 1) {//一個引數
    var startNum = arguments[0] > 0 ? arguments[0] : (len + arguments[0]);
    for(var i = startNum; i < len; i++) {
      newArr.push(arr[i]);
    }
  }
  else if(arguments.length == 2) {//兩個引數
    var startNum = arguments[0] > 0 ? arguments[0] : (len + arguments[0]);
    var endNum = arguments[1] > 0 ? arguments[1] : (len + arguments[1]);
    if(startNum >= endNum) {//起始索引大於終止索引,返回[]
      return newArr;
    }
    else {
      for(var i = startNum; i < endNum; i++) {
        newArr.push(arr[i]);
      }
    }
  }
  return newArr;
};
console.log(arr.length); // 7
// 一個引數
console.log(arr.copySlice(2)); // [3,"a","b","c","d"]
// 兩個引數
console.log(arr.copySlice(3,6));  //["a","c"]
console.log(arr);  //[1,"d"]
// 接收負數
console.log(arr.copySlice(-2)); // ["c","d"]
console.log(arr.copySlice(-5,6)); //[3,"c"]
//結束位置小於起始位置,返回空陣列。
console.log(arr.copySlice(-5,-6)); //[]
console.log(arr.copySlice(5,5)); //[]
console.log(arr.copySlice(5,)); // ["c","d"]

執行結果:

感興趣的朋友可以使用線上HTML/CSS/JavaScript程式碼執行工具:http://tools.jb51.net/code/HtmlJsRun測試上述程式碼執行效果。

更多關於JavaScript相關內容感興趣的讀者可檢視本站專題:《JavaScript陣列操作技巧總結》、《JavaScript遍歷演算法與技巧總結》、《javascript面向物件入門教程》、《JavaScript數學運算用法總結》、《JavaScript資料結構與演算法技巧總結》及《JavaScript錯誤與除錯技巧總結》

希望本文所述對大家JavaScript程式設計有所幫助。