JS数组方法slice()用法实例分析


Posted in Javascript onJanuary 18, 2020

本文实例讲述了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"]

运行结果:

JS数组方法slice()用法实例分析

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
Jquery cookie操作代码
Mar 14 Javascript
js的image onload事件使用遇到的问题
Jul 15 Javascript
JavaScript实现判断图片是否加载完成的3种方法整理
Mar 13 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
Mar 27 Javascript
BootStrap扔进Django里的方法详解
May 13 Javascript
js获取隐藏元素宽高的实现方法
May 19 Javascript
分享JS数组求和与求最大值的方法
Aug 11 Javascript
jQuery组件easyui基本布局实现代码
Aug 25 Javascript
js实现StringBuffer的简单实例
Sep 02 Javascript
js实现二级联动简单实例
Jan 11 Javascript
vue+ts下对axios的封装实现
Feb 18 Javascript
vue 数字翻牌器动态加载数据
Apr 20 Vue.js
JS实现横向轮播图(中级版)
Jan 18 #Javascript
vue.js+ElementUI实现进度条提示密码强度效果
Jan 18 #Javascript
JS数组方法concat()用法实例分析
Jan 18 #Javascript
JS实现纵向轮播图(初级版)
Jan 18 #Javascript
JS数组方法reverse()用法实例分析
Jan 18 #Javascript
JS实现横向轮播图(初级版)
Jun 24 #Javascript
JS数组方法shift()、unshift()用法实例分析
Jan 18 #Javascript
You might like
php 图像函数大举例(非原创)
2009/06/20 PHP
PHP 开发环境配置(Zend Studio)
2010/04/28 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
2014/07/02 PHP
laravel自定义分页效果
2017/07/23 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
2007/05/03 Javascript
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
2015/03/06 Javascript
javascript实现3D切换焦点图
2015/10/16 Javascript
详解javascript new的运行机制
2016/01/26 Javascript
全面解析Bootstrap中transition、affix的使用方法
2016/05/30 Javascript
JavaScript的字符串方法汇总
2016/07/31 Javascript
ReactNative页面跳转实例代码
2016/09/27 Javascript
nodejs基础应用
2017/02/03 NodeJs
bootstrap Table服务端处理分页(后台是.net)
2017/10/19 Javascript
vue组件发布到npm简单步骤
2017/11/30 Javascript
JavaScript的数据类型转换原则(干货)
2018/03/15 Javascript
Javascript中弹窗confirm与prompt的区别
2018/10/26 Javascript
js canvas实现橡皮擦效果
2018/12/20 Javascript
JavaScript+HTML5 canvas实现放大镜效果完整示例
2019/05/15 Javascript
webgl实现物体描边效果的方法介绍
2019/11/27 Javascript
[51:27]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python re正则表达式模块(Regular Expression)
2014/07/16 Python
Python中转换角度为弧度的radians()方法
2015/05/18 Python
Python基于Tkinter的HelloWorld入门实例
2015/06/17 Python
利用python画一颗心的方法示例
2017/01/31 Python
python实现扫描ip地址的小程序
2019/04/16 Python
提升Python效率之使用循环机制代替递归函数
2019/07/23 Python
python实现最大优先队列
2019/08/29 Python
Python 将json序列化后的字符串转换成字典(推荐)
2020/01/06 Python
Python 可视化神器Plotly详解
2020/12/26 Python
syb养殖创业计划书
2014/01/09 职场文书
辞旧迎新演讲稿
2014/09/15 职场文书
八项规定个人对照检查材料思想汇报
2014/09/25 职场文书
刑事撤诉申请书
2015/05/18 职场文书
冰雪公主观后感
2015/06/16 职场文书