实现array.slice()方法

简介: 实现array.slice()方法

以下是我的一些想法,若有问题感谢您指出来        谢谢

Array.prototype.mySlice = function(...formPara){//不定参数,es6中有介绍
           let length =  formPara.length;
           let temp = [];//要返回的数组
           let start = 0;//默认初始位置为下标0
           let end = this.length;//默认初始位置为下标length-1
           //也就是只有一个参数传进来
           if(length === 1 ){
                start = formPara[0] < 0? end + formPara[0]:formPara[0];
           }
           //传入两个参数
           else if(length === 2){
                start = formPara[0] < 0? end + formPara[0]:formPara[0];
                end = formPara[1] < 0? end + formPara[1]:formPara[1];
                
           }
           for(let i = start;i < end;i++){
                temp.push(this[i]);
           }
           return temp;
        }
let arrary = ['a','b','c','d','e','f'];
    console.log(arrary.mySlice());      //["a", "b", "c", "d", "e", "f"]
    console.log(arrary.mySlice(1));     //["b", "c", "d", "e", "f"]
    console.log(arrary.mySlice(2,3));   //["c"]
    console.log(arrary.mySlice(3,2));   //[]
    console.log(arrary.mySlice(-3,-1)); //["d", "e"]
    console.log(arrary.mySlice(-1,-3)); //[]
    console.log(arrary.mySlice(-3));    //["d", "e", "f"]

结果截图如下:

相关文章
|
1月前
|
JavaScript 前端开发 开发者
|
4月前
|
JavaScript 算法 前端开发
JS算法必备之Array常用操作方法
这篇文章详细介绍了JavaScript中数组的创建、检测、转换、排序、操作方法以及迭代方法等,提供了数组操作的全面指南。
JS算法必备之Array常用操作方法
|
3月前
|
JavaScript 前端开发
JavaScript Array map() 方法
JavaScript Array map() 方法
|
5月前
|
索引
|
5月前
|
索引
ArrayList集合常用方法,.set可以用来生成图片和赋值命名,array.remove(1),array.set(1,“xxxx”)可以修改指定位置,array.size可以获取元素的个数
ArrayList集合常用方法,.set可以用来生成图片和赋值命名,array.remove(1),array.set(1,“xxxx”)可以修改指定位置,array.size可以获取元素的个数
|
7月前
|
前端开发 JavaScript
前端 js 经典:array 原生方法
前端 js 经典:array 原生方法
56 1
|
7月前
|
Rust 索引 Windows
Rust 原始类型之数组array内置方法
Rust 原始类型之数组array内置方法
242 0
Rust 原始类型之数组array内置方法
|
7月前
ES6的Array.from({length:N})方法创建长度为N的undefined数组,等价于 [...Array(N)]
ES6的Array.from({length:N})方法创建长度为N的undefined数组,等价于 [...Array(N)]
|
JavaScript 前端开发
js中的Array对象属性和方法整理(二)
js中的Array对象属性和方法整理
88 0