js Array.slice的8种不同用法示例

下面就是关于“js Array.slice的8种不同用法示例”的完整攻略:

什么是Array.slice()方法?

Array.slice()方法是一个具有很强实用性的JavaScript数组方法,它可以把数组中的某一部分或全部内容复制到一个新数组中。

基本语法

array.slice(start, end)
  • start:必须,整数值。规定从哪里开始选取,如果是负数,则是从数组尾部开始计算。
  • end:可选,整数值。规定到哪里结束选取,如果是负数,则是从数组尾部开始计算。如果没有指定该参数,则提取从 start 到数组结尾的所有元素。

用法示例

用法一:复制整个数组

let arr1 = [1, 2, 3];
let arr2 = arr1.slice();
console.log(arr2);

输出结果:

[1, 2, 3]

使用slice()方法不传任何参数就可以复制整个数组。

用法二:提取一个数组的部分

let arr1 = [1, 2, 3, 4, 5];
let arr2 = arr1.slice(1, 4);
console.log(arr2);

输出结果:

[2, 3, 4]

slice()方法可以从指定的开始索引处提取元素,到指定的结束索引处(不包括结束索引处),并将其放入一个新数组中。

用法三:提取最后n个元素

let arr1 = [1, 2, 3, 4, 5];
let arr2 = arr1.slice(-3);
console.log(arr2);

输出结果:

[3, 4, 5]

使用负数索引可以从数组尾部开始计算。所以,上例中的-3表示从倒数第三个元素开始,一直复制到数组结尾。

用法四:生成包含重复元素的数组

let arr1 = [1, 2, 3];
let arr2 = arr1.slice();
for (let i = 0; i < 2; i++) {
    arr1.push(4);
    console.log(arr1.slice());
}

输出结果:

[1, 2, 3, 4]
[1, 2, 3, 4, 4]

slice()方法可以把一个包含重复元素的数组复制到一个新数组中。所以,在上例中,arr2是原始数组的一个副本,后续的代码向原始数组中添加了一个元素后,通过slice()方法再复制一个新数组,就会发现arr2不会受到影响。

用法五:生成空数组

let arr1 = [1, 2, 3];
let arr2 = arr1.slice(0, 0);
console.log(arr2);

输出结果:

[]

slice()方法不传参或传入两个参数其中一个为0时会返回一个空数组。

用法六:复制类数组对象到数组中

let argsObj = {0: "foo", 1: "bar", length: 2};
let arr = [].slice.call(argsObj);
console.log(arr);

输出结果:

["foo", "bar"]

当然,并不是所有类数组对象都可以调用数组方法,但是事实上就是,arguments对象、DOM节点集合、表单元素集合等等都属于类数组对象。有时我们需要把一个类数组对象转化为一个数组,此时就可以通过[].slice.call()的形式调用slice()方法,从而实现类数组对象到数组的转化。

用法七:复制字符串到字符数组中

let str = 'Hello World!';
let arr = Array.prototype.slice.call(str, 0);
console.log(arr);

输出结果:

["H", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d", "!"]

和上例一样,我们可以把一个字符串转化为一个字符数组,其中的思想就是借助[].slice.call()来实现。

用法八:复制一个不变的对象

let obj = {a: 0, b: 1};
let arr = Array.prototype.slice.call(obj);
console.log(arr);

输出结果:

[{a: 0, b: 1}]

通过上面的示例可以发现,使用slice()方法可以复制一个不变的对象。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js Array.slice的8种不同用法示例 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JavaScript学习历程和心得小结

    JavaScript学习历程和心得小结 学习历程 我在学习JavaScript的过程中,主要通过以下三个步骤逐渐掌握了这门编程语言: 理解基本语法和概念 在学习JavaScript的初期,我通过阅读《JavaScript高级程序设计》等书籍,对JavaScript的基本语法和概念进行了学习。这些内容包括变量、数据类型、运算符、流程控制语句、函数等基础知识。 …

    JavaScript 2023年5月18日
    00
  • js中的reduce()函数讲解

    JS中的reduce()函数讲解 什么是reduce()函数? reduce()函数是JavaScript中常用的数组方法之一,其作用是对数组中的元素进行迭代,并将它们合并到单个值中。该函数接收两个参数:累加器函数(accumulator)和初始值(initialValue)。 累加器函数接受4个参数: accumulator (缩写为a):进行迭代计算时累…

    JavaScript 2023年5月27日
    00
  • 利用10行js代码实现上下滚动公告效果

    当你想要在网站中展示一些跑马灯式的公告时,上下滚动效果是一种常见的解决方案。使用 JavaScript,可以用只有十几行代码的方式实现这种上下滚动效果。 以下是利用 10 行 js 代码实现上下滚动公告效果的完整攻略: 步骤1: 创建 HTML 页面 首先,我们需要在 HTML 页面中添加一个容器来放置滚动公告。我们可以使用 <div> 元素来创…

    JavaScript 2023年6月11日
    00
  • JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】

    下面我将详细讲解“JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】”的完整攻略。 准备工作 在使用FileSaver.js之前,我们需要先在HTML页面中导入该插件: <script src="https://cdn.bootcdn.net/ajax/libs/FileSaver.js/2.0.5/FileSa…

    JavaScript 2023年5月19日
    00
  • javascript比较两个日期相差天数的方法

    对于JavaScript来说,比较两个日期相差天数的方法可以使用以下两种方式: 方式一:使用Date对象获取时间戳进行计算 我们可以将两个日期转化为时间戳,然后计算它们之间相差的毫秒数,最后再将毫秒数换算成天数。 /** * 计算两个日期相差的天数 * @param {string} date1 日期1,格式为 yyyy-mm-dd * @param {st…

    JavaScript 2023年5月28日
    00
  • JavaScript 表单处理实现代码

    关于“JavaScript 表单处理实现代码”的详细讲解,本文将分为以下三个部分来介绍。 一、表单处理实现代码的基本知识 在前端开发中,表单的作用是向后端服务器传输数据,因此表单处理是前端开发的核心技术之一。而 JavaScript 是前端开发的主要编程语言之一,它可以很好地与表单交互,实现表单的各种操作。下面是一些常用的表单处理实现代码。 1. 获取表单元…

    JavaScript 2023年6月10日
    00
  • Array.reduce使用原理示例详解

    Array.reduce使用原理示例详解 什么是reduce reduce 是 JavaScript 数组 Array 原型中的一个方法,它接收两个参数,第一个参数是函数,第二个参数是初始值。 array.reduce(function callback(accumulator, currentValue, currentIndex, array) { //…

    JavaScript 2023年5月27日
    00
  • 防止网站内容被小偷采集的js代码 原创

    下面是防止网站内容被小偷采集的js代码的完整攻略,包含以下步骤: 步骤一:禁止右键菜单和文字选择 在网页中加入以下代码可以禁止鼠标右键菜单和文字选择: <body oncontextmenu="return false" onselectstart="return false"> 这样做可以有效防止普通用户…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部