交流群:462197261站长百科站长论坛热门标签收藏本站北冥有鱼 互联网前沿资源第一站 助力全行业互联网+
点击这里给我发消息
  • 当前位置:
  • JS数组方法slice()用法实例分析

    北冥有鱼 教程大全 2020-01-19 ,,

    本文实例讲述了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", "b", "c"]
    console.log(arr);  //[1, 2, 3, "a", "b", "c", "d"]
    // 接收负数
    console.log(arr.copySlice(-2)); // ["c", "d"]
    console.log(arr.copySlice(-5, 6)); //[3, "a", "b", "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程序设计有所帮助。


    广而告之:
    热门推荐:
    小程序获取周围IBeacon设备的方法

    本文实例为大家分享了小程序获取周围IBeacon设备的具体代码,供大家参考,具体内容如下 该功能实现需要使用以下API: wx.startBeaconDiscovery(OBJECT):开始搜索附近的iBeacon设备 wx.stopBeaconDiscovery(OBJECT):停止搜索附近的iBeacon设备 wx.onBeaconUpdate(CALLBACK):···

    JQuery中的$.getJSON 使用说明

    原型如下: jQuery.getJSON( url, [data], [callback] ) 跨域加载JSON数据。 url: 发送请求的地址 data : (可选) 待发送key/value参数 callback: (可选) 载入成功时的回调函数 主要用于客户端获取服务器JSON数据。简单示例: 服务器脚本,返回JSON数据: $.getJSON.php $···

    asp.net实现批量删除实例

    本文实例讲述了asp.net实现批量删除功能的方法。对于asp.net的学习有一定的参考价值。分享给大家供大家参考之用。具体实现方法入戏: .aspx文件代码如下: <asp:GridView ID="GridView1" runat="server" Width="100%" EmptyDataText="暂时无数据" BorderColor="White" OnRo···

    javascript 方法一些使用方法

    无标题文档 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

    Pain 全世界最小最简单的PHP模板引擎 (普通版)

    打包下载 Pain.php 复制代码 代码如下: <?php class Pain { public $var=array(); public $tpl=array(); //this is the method to assign vars to the template public function assign($variable,$value=null) { $this->var[$variable]=$value; } public function···

    JS实现给对象动态添加属性的方法

    本文实例讲述了JS实现给对象动态添加属性的方法。分享给大家供大家参考,具体如下: 在工作用要用到给jd对象动态添加属性的要求,在网上找到了一种解决方式,实例如下: 1、demo var aa="maker"; var bb=123; var lists={}; eval("lists."+aa+"="+bb); eval('('+"lists."+aa+"···

    HTML中文件上传时使用的<input type=

    Web页面中,在需要上传文件时基本都会用到<input type="file">元素,它的默认样式: chrome下: IE下: 不管是上面哪种,样式都比较简单,和很多网页的风格都不太协调。 根据用户的需求,设计风格,改变其显示样式的场合就比较多了。 如果,要像下面一样做一···

    确保外链的质量可引导蜘蛛抓取网站给予排名,从而吸引用户访问网

    大多数SEO工作者不仅要优化网站的内部链,还要优化网站的外部链。那么如何优化网站的外部链呢?这对SEO工作人员非常重要。接下来,小编给你介绍一下。关注外链的质量可以引导蜘蛛抓取网站,提升网站吸引用户,所以很多新手站长肆意发布外链,是典型的海军实践,在各种论坛回复···

    thinkphp中连接oracle时封装方法无法用的解决办法

    最近收集了一些关于THinkPHP连接Oracle数据库的问题,有很多朋友按照连接mysql的方法来操作,导致有一些方法在Oreale中无法正常使用。比如说:findAll,Select方法无法使用,获取不到需要的数据。Create和add方法无法创建和写入数据到数据库中。 其实根据以前问题我做了···

    vue项目中应用ueditor自定义上传按钮功能

    由于上传地址问题,需要自定义上传按钮,效果如图 由于在页里面没有操作dom,所以想到了用vue的 自定义事件绑定$emit 、$on来把点击事件传递给ueditor。 首先是给ueditor添加自定义按钮: 1,打开ueditor.all.js,找到btnCmds,大概在27854行,如下图,在数组添加一个自定义的···