JS服务器端开发基础篇(Array.slice方法)

简介:

Array.slice方法在众多的JS数组中属于比较复杂的一个方法,搜索网络上很多资料都没有发现系统的总结。特别归纳如下,不完全处还希望各位批评指正。

 

格式:

arrayObj.slice(start, [end])

功能:返回指定数组的一个子数组,并不修改原来数组

参数:

start:必需。arrayObj的指定部分的开头。

end:可选。arrayObj的指定部分的结尾。

 

数组使用来看,这个方法类似于串操作中的substr函数。但是,当参数为负数时,情况就复杂了。

具体情况详见下面的代码示例:

var a1=[1,3,5,7,9];

var n1=a1.slice(0); //n1=>[1,3,5,7,9]效果与a1.slice(0,5)一样

var n1=a1.slice(1); //n1=>[3,5,7,9]

var m1=a1.slice(0,2);  //m1=>[3,5]2代表截取子串的长度

var m1=a1.slice(0,5); //m1=>[1,3,5,7,9]5代表截取子串的长度

var m1=a1.slice(0,15); //m1=>[1,3,5,7,9]15大于最大长度,不再起作用

var m1=a1.slice(0,-1); // m1=>[1,3,5,7]

var m1=a1.slice(0,-2); // m1=>[1,3,5]

var m1=a1.slice(0,-5); // m1=>[]

var m1=a1.slice(0,-15); // m1=>[]

var n2=a1.slice(-1); //n2=>[9]

var n3=a1.slice(-2); //n3=>[7,9]

var nx=a1.slice(-5); // nx=>[1,3,5,7,9]

var ny=a1.slice(-10); // ny=>[1,3,5,7,9]

 [1,2,3,4,5,6,7,8,9].slice(-5); //=>[5,6,7,8,9]

[1,2,3,4,5,6,7,8,9].slice(-5,-1); //=>[5,6,7,8]

[1,2,3,4,5,6,7,8,9].slice(-5,-3); //=>[5,6]

[1,2,3,4,5,6,7,8,9].slice(-5,-10);  //=>[]

[1,2,3,4,5,6,7,8,9].slice(-5,0); //=>[]

[1,2,3,4,5,6,7,8,9].slice(-5,1); //=>[]

上述代码片断已经概括了slice方法的所有使用情形,总结如下:

1)如果start>=0

    当没有参数end时,从原数组中返回从索引号start开始直到最后元素的子数组。

    当参数end>=0时,从原数组中返回从索引号start开始的end个元素的子数组。此时,如果end>数组最大长度,则返回length个元素组成的子数组。

2)如果start<0

    当没有参数end时,从原数组尾部截取|start|个元素组成的子数组。此时,如果|start|>数组最大长度,则返回length个元素组成的子数组。

    当参数end<0,则从没有参数end时取得的子串,例如sub1,尾部截去|end|个元素。此时,当|end|>sub1.length,返回空子数组。

    当参数end>=0,返回空子数组。

 













本文转自朱先忠老师51CTO博客,原文链接: http://blog.51cto.com/zhuxianzhong/1651258,如需转载请自行联系原作者




相关文章
|
2月前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
79 9
|
20天前
|
存储 人工智能 自然语言处理
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
ChatMCP 是一款基于模型上下文协议(MCP)的 AI 聊天客户端,支持多语言和自动化安装。它能够与多种大型语言模型(LLM)如 OpenAI、Claude 和 OLLama 等进行交互,具备自动化安装 MCP 服务器、SSE 传输支持、自动选择服务器、聊天记录管理等功能。
126 15
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
|
8天前
|
SQL 存储 关系型数据库
MySQL/SqlServer跨服务器增删改查(CRUD)的一种方法
通过上述方法,MySQL和SQL Server均能够实现跨服务器的增删改查操作。MySQL通过联邦存储引擎提供了直接的跨服务器表访问,而SQL Server通过链接服务器和分布式查询实现了灵活的跨服务器数据操作。这些技术为分布式数据库管理提供了强大的支持,能够满足复杂的数据操作需求。
52 12
|
1月前
|
机器学习/深度学习 JavaScript Cloud Native
Node.js作为一种快速、可扩展的服务器端运行时环境
Node.js作为一种快速、可扩展的服务器端运行时环境
46 8
|
2月前
|
JavaScript
使用Node.js创建一个简单的Web服务器
使用Node.js创建一个简单的Web服务器
|
2月前
|
安全 开发工具 Swift
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发。基础语法涵盖变量、常量、数据类型、运算符、控制流等,高级特性包括函数、闭包、类、结构体、协议和泛型。
33 2
|
2月前
|
JavaScript
使用node.js搭建一个express后端服务器
Express 是 Node.js 的一个库,用于搭建后端服务器。本文将指导你从零开始构建一个简易的 Express 服务器,包括项目初始化、代码编写、服务启动与项目结构优化。通过创建 handler 和 router 文件夹分离路由和处理逻辑,使项目更清晰易维护。最后,通过 Postman 测试确保服务正常运行。
78 1
|
2月前
|
数据采集 JavaScript 搜索推荐
服务器端渲染(SSR)(Nuxt+Next.js)
服务器端渲染(SSR)技术在服务器上生成页面HTML,提升首屏加载速度和SEO效果。Nuxt.js和Next.js分别是基于Vue.js和React.js的流行SSR框架。Nuxt.js提供自动化路由管理、页面级数据获取和布局系统,支持SSR和静态站点生成。Next.js支持SSR、静态生成和文件系统路由,通过`getServerSideProps`和`getStaticProps`实现数据获取。SSR的优点包括首屏加载快、SEO友好和适合复杂页面,但也会增加服务器压力、开发限制和调试难度。选择框架时,可根据项目需求和技术栈决定使用Nuxt.js或Next.js。
|
2月前
|
JavaScript 前端开发 开发者
|
JSON JavaScript 前端开发
20+个超级实用的 JavaScript 开发技巧(下)
今天来分享几个JavaScript开发技巧,希望对你有所帮助~
127 0