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 相关文章推荐
javascript 操作cookies及正确使用cookies的属性
Oct 15 Javascript
得到form下的所有的input的js代码
Nov 07 Javascript
js实现网页随机切换背景图片的方法
Nov 01 Javascript
javascript中FOREACH数组方法使用示例
Mar 01 Javascript
bootstrap table表格插件使用详解
May 08 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
May 31 Javascript
iscroll实现下拉刷新功能
Jul 18 Javascript
Vue EventBus自定义组件事件传递
Jun 25 Javascript
vue-router+nginx 非根路径配置方法
Jun 30 Javascript
layui 监听表格复选框选中值的方法
Aug 15 Javascript
vue+elementUI 复杂表单的验证、数据提交方案问题
Jun 24 Javascript
JS如何使用剪贴板操作Clipboard API
May 17 Javascript
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文件夹的创建与删除方法
2015/01/24 PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
2019/10/11 PHP
某页码显示的helper 少量调整,另附js版
2010/09/12 Javascript
js读取本地excel文档数据的代码
2010/11/11 Javascript
JavaScript 高级篇之函数 (四)
2012/04/07 Javascript
Javascript实现页面跳转的几种方式分享
2013/10/26 Javascript
Tab切换组件(选项卡功能)实例代码
2013/11/21 Javascript
jQuery热气球动画半透明背景的后台登录界面代码分享
2015/08/28 Javascript
基于jQuery1.9版本如何判断浏览器版本类型
2016/01/12 Javascript
jQuery元素选择器实例代码
2017/02/06 Javascript
Vue和Bootstrap的整合思路详解
2017/06/30 Javascript
Angular4 中内置指令的基本用法
2017/07/31 Javascript
关于ckeditor在bootstrap中modal中弹框无法输入的解决方法
2019/09/11 Javascript
jQuery与原生JavaScript选择HTML元素集合用法对比分析
2019/11/26 jQuery
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
2017/12/20 Python
Python中实现最小二乘法思路及实现代码
2018/01/04 Python
Python 统计字数的思路详解
2018/05/08 Python
python 请求服务器的实现代码(http请求和https请求)
2018/05/25 Python
Python将list中的string批量转化成int/float的方法
2018/06/26 Python
Python画图高斯分布的示例
2019/07/10 Python
使用python绘制cdf的多种实现方法
2020/02/25 Python
解决reload(sys)后print失效的问题
2020/04/25 Python
Python并发concurrent.futures和asyncio实例
2020/05/04 Python
利用python查看数组中的所有元素是否相同
2021/01/08 Python
pycharm 实现光标快速移动到括号外或行尾的操作
2021/02/05 Python
python批量提取图片信息并保存的实现
2021/02/05 Python
SmartBuyGlasses意大利:购买太阳镜、眼镜和隐形眼镜
2018/11/20 全球购物
迪卡侬波兰体育用品商店:Decathlon波兰
2020/03/31 全球购物
What is the purpose of Void class? Void类的作用是什么?
2016/10/31 面试题
南京迈特望C/C++面试题
2012/07/09 面试题
迟到检讨书5000字
2014/01/31 职场文书
物流管理专业毕业生求职信
2014/03/23 职场文书
党委书记个人检查对照材料思想汇报
2014/10/11 职场文书
小学六年级班主任工作经验交流材料
2015/11/02 职场文书
手把手教你怎么用Python实现zip文件密码的破解
2021/05/27 Python