JavaScript 中的拼接与切片
JavaScript 数组是具有预定义属性的特殊对象。这些是可以分配给作为输入参数传递的值的数值属性。JavaScript 提供了几种处理数组的方法。一些比较流行的数组方法是 .push()
、.pop()
、.reverse()
等。所有这些方法都会改变数组。
在本文中,我们将了解 JavaScript 中 splice
和 slice
之间的区别。
JavaScript 中的 splice()
与 slice()
splice()
splice()
方法影响或修改数组的内容。它要么删除或替换现有元素和/或在适当位置添加新元素。
语法:
splice(start)
splice(start, deleteCount)
splice(start, deleteCount, item1)
splice(start, deleteCount, item1, item2, itemN)
JavaScript Splice 方法有三个参数,第一个是 start
。它是一个必需参数,用于指定开始修改数组的数组的起始位置/索引。如果它大于数组的长度,则将 start 设置为数组的长度。
在这种情况下,不会删除任何元素,但该方法的行为类似于求和函数,添加与提供的 [n*] 个元素一样多的元素。如果它是负数,它从数组末尾的那么多元素开始。
第二个参数是 deleteCount
,它是一个可选参数。该参数指定数组中要从头开始删除的元素个数。如果省略 deleteCount
或其值等于或大于 array.length - start
,则删除数组开头到结尾的所有元素,0 或负数,不删除任何项目。在这种情况下,你必须输入至少一篇新文章。
第三个参数是 item1, item2, ...
,它是一个可选参数。此参数指定要添加到数组中的元素,从开头开始。如果不指定项,splice() 只会消除数组的元素。
此方法返回一个包含已删除项目的数组。如果只删除一个元素,则返回一个元素的数组。如果没有删除任何元素,则返回一个空数组。有关更多信息,请阅读 splice
方法的文档。
const osConfig = ['Linux', 'Ubuntu', 'MacOS', 'Windows'];
console.log(osConfig, osConfig.splice(0, 2));
在上面的示例中,我们指定了不同类型的操作系统。当你尝试提取开源操作系统时,它会影响原始的 osConfig
数组并返回一个不包含开源操作系统名称的数组。当你在任何浏览器中运行上述代码时,它会打印出类似这样的内容。
输出:
["MacOS", "Windows"], ["Linux", "Ubuntu"]
切片()
slice() 方法从开始到结束将数组的一部分的浅拷贝返回到新选择的数组对象中,其中 start 和 end 是该数组中元素的索引。原始阵列不会受到影响或修改。splice()
方法可以接受 n 个参数,而 slice()
方法接受 2 个参数。
语法:
slice()
slice(start)
slice(start, end)
JavaScript slice()
方法包含两个参数,其中 start
是第一个参数,一个可选参数。此参数指定开始提取的索引。该索引从 0
开始。start
的默认值始终为 0
。如果 start 大于数组的长度,则返回一个空数组。
第二个参数是一个 end
,一个可选参数。此参数指定提取需要结束的端点。slice
提取到指定的索引但不包括结尾。例如,如果结尾是 n
,则提取的最后一个元素是 n-1
。如果未指定 end,则 slice 方法从数组的末尾提取。
此方法返回一个包含提取元素的新数组。有关更多信息,请阅读 slice
方法的文档。
const osConfig = ['Linux', 'Ubuntu', 'MacOS', 'Windows'];
console.log(osConfig, osConfig.slice(0, 2););
在上面的示例中,我们指定了不同类型的操作系统。当你尝试提取开源操作系统时,它不会影响原始的 osConfig
数组,而是会创建一个包含开源操作系统名称的新数组。当你在任何浏览器中运行上述代码时,它会打印出类似这样的内容。
输出:
["Linux", "Ubuntu", "MacOS", "Windows"], ["Linux", "Ubuntu"]
Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.
LinkedIn