Javascript slice() 方法不会更改或更改原始数据。本教程将教您如何使用 Javascript 切片技术以及如何利用其不变的潜力。
简单地说,javascript slice 函数是一个内置的数组或字符串方法,它将数组的一部分的浅拷贝返回到一个新的数组对象中,其中“开始”和“结束”是数组的索引。不会对初始数组进行任何修改。
const language = ["javascript", "java", "ruby", "rust", "python"]; console.log(language.slice(2)); // ['ruby', 'rust', 'python']
我们使用零索引基在索引 2 处进行切片,这会产生一个包含切片元素的全新数组。但是如果我们检查原始数组(语言)呢?会改吗? javascript 切片技术与 javascript 拼接函数不同,不会改变或影响原始数据。
Javascript 切片方法使用起来相当简单;但是为了完全理解它,我们会强调它的语法。
这个的语法是什么?这种语法是通过简单地用括号“()”包围单词“slice”来编写的,如下所示:
slice()
因为这是一个方法,所以它接受参数,这使您可以更灵活地使用 slice 函数对数组执行的操作。
它们如下:
可以将 start 参数简单地指示 slice 方法应该开始的索引,并将其传递给 slice 函数。回顾前面的例子,slice 方法接受 2 作为输入,简单来说就是从索引 2 开始。如果没有指定 start 参数,索引将被设置为 0。end 参数也可以发送到 slice方法,但它依赖于 start 参数才能正常运行。结束参数指示数组应该在哪个索引处完成提取元素。它通过不包括结束,但只包括结束来做到这一点。如果未指定结束参数,则返回完整的数组长度。
slice(start) slice(start,end)
使用 slice 方法:假设我们有一个包含多种编程语言的数组,我们想从数组中选择三个元素。我们只需编写 slice(1,4) 函数,提供两个基于索引的参数,开始和结束。提取将从指定的索引 1 开始,并以 4 结束,但它不会返回精确的第四个元素,而是提供第四个元素之前的元素。
这是它是如何完成的:
const language = ["javascript", "java", "ruby", "rust", "python"]; console.log(language.slice(1,4)); // ['ruby', 'rust', 'python']
返回新数组而不修改现有数组。
const language = ["javascript", "java", "ruby", "rust", "python"]; console.log(language.slice(1,4)); // ['java', 'ruby', 'rust'] console.log(language); // ['javascript', 'java', 'ruby', 'rust', 'python']
javascript数组可用于以下领域;但是,需要注意的是,slice 方法也可以用于非数组。
在对象上使用 Javascript slice 方法。
在稀疏数组上使用 Javascript 切片方法。
使用 Javascript 切片方法将非数组转换为数组。
javascript slice 方法通过首先考虑对象属性的长度,然后从头到尾读取整数键属性来处理对象。并将它们放在一个新数组中。它使用 call() 方法。
const arrayLike = { length: 3, 0: 2, 1: 3, 2: 4, }; console.log(Array.prototype.slice.call(arrayLike, 1, 3)); // [3, 4]
当 javascript slice 方法用于稀疏数组时,如果源是稀疏的,从slice()
返回的数组可能是稀疏的。
console.log([1, 2, , 4, 5].slice(1, 4)) // [2, empty, 4]
要构建将类数组对象转换为数组的实用程序函数,请使用 Javascript slice 方法以及call()
和bind()
方法。
const sliceEl = Function.prototype.call.bind(Array.prototype.slice); function list() { return sliceEl(arguments); } const listed = list(1, 2, 3) console.log(listed) //[1, 2, 3]
Javascript 中的 slice 和 splice 方法有什么区别?
Slice 用于从原始数组创建新数组,而 splice 用于从原始数组中添加/删除元素。在切片的情况下,更改不会反映在原始数组中;但是,在拼接的情况下,更改会反映在原始数组中。
slice 和 splice 方法有什么相似之处?
它们之间的主要相似之处在于它们都是 javascript 数组的方法。
什么时候使用 slice 方法?
如果您不希望在执行任务时修改或改变原始数据,切片方法是最好的方法。这是 ReactJs 中的典型方法。
最后,javascript slice() 方法是一种复制方式。它不会更改原始数组,而是提供一个浅表副本,其中包含一些与原始数组相同的项目。它们接受两个可选参数,“开始”和“结束”,并根据这些参数从数组中提取元素。它们适用于非数组。对象、稀疏数组等。