JavaScript 中 Slice() 的用法有哪些?

目录
文章目录隐藏
  1. 参数是什么?
  2. 1、复制一个数组
  3. 2、构造一个以 n 开头的子数组
  4. 3、将类数组对象转换为数组
  5. 4、将一个 NodeList 转换成一个数组
  6. 5、替换字符串中的特定索引
  7. 结语

JavaScript 中 Slice() 的用法有哪些?

slice()方法将数组部分的副本返回到新的数组对象中。这个对象是从头到尾选择的。请注意,它不会修改原始数组。

此外,如果向其中一个数组添加新元素,则另一个数组不会受到影响。

参数是什么?

slice()方法的参数是开始和结束索引。

开始

它是一个从零开始的索引,用于开始复制数组的一部分。如果未定义,则默认值为 0。如果 start 大于数组的索引范围,slice()方法将返回一个空数组。

此外,首先,您还可以使用负索引。slice(-1)提取数组的最后一个元素。它类似于 Python。

结尾

该参数是可选的。如果你的slice()函数中只有一个参数,那就是 start。如果省略,slice()方法从序列的末尾提取。

如果它大于序列的长度,slice 一直提取到序列的末尾,只是在它被省略的情况下。

它是结束提取之前的索引。它不包括在内。因此,索引的最后一个元素不包含在数组的副本中。例如,slice(1,3)提取第二个和第三个元素。

y = [1, 2, 3, 4, 5, 6]
y.slice(2, -2) // 将返回 [3, 4]

这意味着 y 会将数组从索引 2 切片到索引-2 独占。

1、复制一个数组

第一个功能是slice()函数的基本功能。没有参数的数组复制原始数组。有时,您可能想要更新数组中的某些元素。

但是,您可能希望保护原始数组中的元素。因此,您可以创建原始数组的浅表副本。

const midtermGrades = updatedGrades.slice();

2、构造一个以 n 开头的子数组

slice()方法的第二个用例是复制以n开头的子数组。例如,您正在分析从考试中获得 80 分或更高分的学生。您发现学生的索引从 10 开始。因此,您可以复制成功学生的索引。

const successfulStudents = allStudents.slice(10);

你也可以得到不满意的学生。

const unsatisfactoryStudents = allStudents.slice(-10);

3、将类数组对象转换为数组

您可以使用slice()方法将看起来像数组的对象转换为数组。例如,您可以按如下方式创建函数。

function TransformToArray(){
  return Array.prototype.slice.call(arguments);
}

var newArray = TransformToArray("1", "2", "3", "4");
console.log(newArray); // ["1", "2", "3", "4"];

4、将一个 NodeList 转换成一个数组

NodeList 对象是从文档中提取的节点集合。您可以使用 querySelectorAll() 方法返回一个 NodeList 对象。

例如,您可以选择 HTML 文档中的所有 <p> 节点。使用 slice(),您可以将您选择的 NodeList 转换为数组。

var p = document.querySelectorAll(‘p’);
var pNodes = Array.prototype.slice.call(p);

5、替换字符串中的特定索引

您可以使用slice()函数创建替换函数。

String.prototype.append = function (index,value) {
 return this.slice(0,index) + value + this.slice(index);
};

var s = "Happy year";
alert(s.append(6,"new "));

结语

学习 JavaScript 内置函数的用例可以帮助您提高编码技能。您可以在需要时使用您的知识。您可以优雅地实现功能。

slice()也是一个有用的内置函数。如果您知道如何使用它,则可以在遇到需要使用它的问题时使用它。您可以使用 slice()轻松获取数组的副本。

总结一下,本文中slice()的用例如下:

  • 复制数组;
  • 构造一个从 n 开始的子数组;
  • 将类数组对象转换为数组;
  • 将 NodeList 转换为数组;
  • 替换字符串中的特定索引。

「点点赞赏,手留余香」

1

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » JavaScript 中 Slice() 的用法有哪些?

发表回复