JavaScript中的Array对象提供了一个slice()方法,用于从已有的数组中返回选定的元素。

arrayObject.slice(start, end)

参数说明

start 必需(否则没有意义)。规定从何处开始选取,即提取起始处的索引(从0开始),从该索引开始提取原数组元素。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1指最后一个元素,-2指倒数第二个元素,以此类推。如果没有指定该参数,则从索引0开始。如果该参数大于原数组的长度,则会返回空数组。
end 可选。规定从何处结束选取,该参数是数组片断结束处的数组下标,即提取终止处的索引(从0开始),在该索引处结束提取原数组元素,该方法会提取原数组中索引从start到end的所有元素(包含start,但不包含end)。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。如果没有指定该参数,那么切分的数组包含从start到数组结束的所有元素。如果该参数大于数组的长度,也会一直提取到原数组末尾。

返回值

返回一个新的数组,包含从start到end(不包括该元素)的arrayObject中的元素。

注意事项

这个方法并不会修改原来的数组,而是返回一个浅复制了原数组中的元素的一个新数组。浅复制的意思就是说,如果向两个数组任一中使用Array.push()添加了新元素或使用Array.splice()方法移除了元素,另一个是不会受到影响的;但是如果修改了数组中的元素,则情况会因为数组中的元素类型不同而有所不同。

1.如果该元素是个对象引用 (不是实际的对象),slice()方法会拷贝这个对象的引用到新的数组里。也就是说,两个数组中的这两个元素都引用了同一个对象,如果被引用的对象发生改变,则新的和原来的数组中的这个元素也会同步发生改变。

2.对于字符串、数字及布尔值来说(不是String、Number或者Boolean对象),slice()方法会拷贝这些值到新的数组里。在别的数组里修改这些字符串或数字或是布尔值,将不会影响另一个数组。

简单示例1

var arr = ["yanggb1", "yanggb2", "yanggb3"];
var arr1 = arr.slice(1, 2); // ["yanggb2"]

简单示例2

var arr = ["yanggb1", "yanggb2", "yanggb3"];
var arr1 = arr.slice(1); // ["yanggb2", "yanggb3"]

巧妙用处

这个方法在截断需要的格式化日期的场景中十分好用,我们来感受一下。

var today = '2019-05-20';
// 我想要yyyy-MM-dd的形式
var today1 = today.split('-').slice(0).join('-'); // 2019-05-20
// 我想要MM-dd的形式
var today1 = today.split('-').slice(1).join('-'); // 05-20
// 我想要dd的形式
var today2 = today.split('-').slice(2).join('-'); //

如果要切换不同的日期形式,只需要修改slice()方法中的参数即可,十分灵活。

"其实生活在井里也挺好的,就是偶尔,会觉得世界很空,生活很咸。"

javascript中的slice()方法的更多相关文章

  1. javascript中的splice方法介绍&示例

    javascript 中的 splice 方法很强大,它可以用于插入.删除或替换数组的元素. 下面来一一介绍! 删除:用于删除元素,两个参数,第一个参数(要删除第一项的位置),第二个参数(要删除的项数 ...

  2. javascript中的toString()方法

    javascript中的toString()方法,主要用于Array.Boolean.Date.Error.Function.Number等对象.下面是这些方法的一些解析和简单应用,做个纪律,以作备忘 ...

  3. JavaScript中的工厂方法、构造函数与class

    JavaScript中的工厂方法.构造函数与class 本文转载自:众成翻译 译者:谢于中 链接:http://www.zcfy.cc/article/1129 原文:https://medium.c ...

  4. 巧用Javascript中的slice()

    slice()是Javascript中Array的一个方法,定义是这样的. arrayObject.slice(start,end)作用是从原数组中从start到end位置截取出一个新的数组,返回值是 ...

  5. JavaScript中数组Array方法详解

    ECMAScript 3在Array.prototype中定义了一些很有用的操作数组的函数,这意味着这些函数作为任何数组的方法都是可用的. 1.Array.join()方法 Array.join()方 ...

  6. javascript中数组的方法你真的都了解吗?

    本篇文章主要讲述ES5中的数组,包括数组两种创建方式,属性,以及 9 大类 ,总共23个操作方法,非常全面,看完之后ES5数组这一部分基本都了解了,下一篇文章,我会讲述ES6中对数组的加成,新增了哪些 ...

  7. JavaScript中的bind方法及其常见应用

    一.bind()方法的实现 在JavaScript中,方法往往涉及到上下文,也就是this,因此往往不能直接引用.就拿最常见的console.log("info…")来说,避免书写 ...

  8. javascript中常用数组方法详细讲解

    javascript中数组常用方法总结 1.join()方法: Array.join()方法将数组中所以元素都转化为字符串链接在一起,返回最后生成的字符串.也可以指定可选的字符串在生成的字符串中来分隔 ...

  9. 你真的会用JavaScript中的sort方法吗

      在平时的业务开发中,数组(Array) 是我们经常用到的数据类型,那么对数组的排序也很常见,除去使用循环遍历数组的方法来排列数据,使用JS数组中原生的方法 sort 来排列(没错,比较崇尚JS原生 ...

随机推荐

  1. 普通用户修改时间 sudo

    sudo date neokylinV7.0  desktop 1.给/etc/sudoers加权限 # chmod u+w /etc/sudoers 2.添加配置 # vim /etc/sudoer ...

  2. Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览

    ​ ​本文是Spring Cloud专栏的第一篇文章,了解本篇文章内容有助于更好的理解后面文章 ​ 一.网站架构演变过程 1-1.传统架构 传统的SSH架构,分为三层架构 web控制层.业务逻辑层.数 ...

  3. mysql 替换 tab 键 (\t)

    update t_instance set instance_name = replace(instance_name,'\t','') , host_name = replace(host_name ...

  4. IDEA插件开发(一)一个简单的表单demo

  5. 学习go语言第二天-变量、常量

    编写测试程序 源码文件以_test结尾;例如:xxx_test.go 测试方法名以Test开头;例如:func TestXXXXX(t *testing.T){} 实现斐波那且数列 package f ...

  6. uni-app微信小程序开发之引入腾讯视频小程序播放插件

    登录微信小程序管理后台添加腾讯视频播放插件: 正式开始使用腾讯视频小程序插件之前需先在微信公众平台 -> 第三方设置 -> 插件管理处添加插件,如下图所示: 在uni-app中引入插件代码 ...

  7. USB工业摄像头设计之上位机

    在工业相机中对摄像头要求较高,且采集的图像数据要求是源数据,未经过任何处理. 为了兼容xp.win7(32bit 64bit) 程序采用VS2008  MFC编制,参考网上一些应用. CYUSB驱动与 ...

  8. Flume理论研究与实验

    一.理论研究 1.1 总览 Flume是一个分布式的可靠的日志收集系统,主要是用于从各种数据源收集.聚合并移动大批量的日志数据到存储系统:它本身具有许多故障转移和恢复机制,具有强大的容错能力:它使用下 ...

  9. inline以及inline-block行内元素:vertical-align属性

  10. 建议2:注意Javascript数据类型的特殊性---(4)避免误用parseInt

    parseInt是一个将字符串转换为整数得函数,与parseFloat(将字符串转换为浮点数)对应,这两种函数是JavaScript提供得两种静态函数,用于把非数字得原始值转换为数字. 在开始转换时, ...