实测js数组截取的方法,详解slice与substring的区别
在 JavaScript 中,您可以使用 slice 方法对字符串和js数组进行截取分割,但可能很多人不知道如何使用它。
因此在本文中,我们将详细解释如何使用 slice 方法以及它与 substring 的区别!
看完这篇文章,你会知道如何用 slice 方法对字符串和数组进行切片,也会明白与 substring 的区别。
什么是slice
slice 是一种允许您从字符串或数组中截取指定部分的方法。
例如通过指定字符串截取开始和结束位置,您可以截取它们之间的字符串。
如果你用 slice 方法为数组指定开始位置和结束位置,中间的元素将被截取。
让我们仔细看看如何使用slice方法。
如何使用slice
slice方法的写法如下:
//字符串类型 字符串类型.slice(开始位置, [结束位置]) //数组类型 数组类型.slice(开始位置, [结束位置])
slice方法通过在字符串类型或数组类型后用点“.”连接来指定。
您可以为 slice 方法指定两个参数,第一个是“开始位置”,第二个是“结束位置”。
slice 方法的第二个参数(结束位置)是可选的。
如果省略,则从开始位置到结束的范围被剪裁。
下面我们来看看如何截取“字符串”,以及如何用 slice 方法截取“数组”。
如何用slice方法截取字符串
首先是如何使用 slice 方法截取一个字符串。
编写实际代码如下:
<script type="text/javascript"> let string = '实测js数组截取的方法'; console.log(string.slice(5)); // 仅指定开始位置时 console.log(string.slice(5, 7)); // 也指定了结束位置时 </script>
将字符串“实测js数组截取的方法”赋值给变量“string”。
然后使用 console.log 打印截取的字符串。
“string.slice(5)”指定字符串从起始位置“5”截取到末尾。
“string.slice(5, 7)”指定字符串从开始位置“5”截取到结束位置“7”。
我们来看下打印结果:
谷歌浏览器开发者工具的控制台输出字符串“组截取的方法”和“组截”。
输出为“组截取的方法”的字符串从第 5 个到最后一个字符被截取,因为 slice 方法将起始位置指定为“5”。
而对于输出为“组截”的字符串,slice方法将起始位置指定为“5”,结束位置指定为“7”,因此第5到第7个字符被截取。
如何用slice截取数组
现在我们来看下使用slice方法对数组进行截取的方法。
编写实际代码如下:
<script type="text/javascript"> let array = ['苹果', '香蕉', '葡萄', '橘子', '菠萝']; console.log(array.slice(2)); // 仅指定开始位置时 console.log(array.slice(2, 4)); // 也指定了结束位置时 </script>
将包含“苹果,香蕉,葡萄,橘子,凤梨”的数组赋值给变量“array”。
然后使用console.log指定"array.slice()",就像使用 strings 一样。
一个仅指定开始位置'2',另一个含有开始位置'2'和结束位置'4'。
显示结果:
第一个输出“葡萄、橘子、菠萝”,第二个输出“葡萄、橘子”。
首先在slice方法中将起始位置指定为'2',因此倒数第二个元素被剪切。
其次slice方法指定了“2”的开始位置和“4”的结束位置,所以第二个到第四个元素被剪裁了。
对于数组,与字符串一样,结束位置不包含在剪辑中。
所以第二种截取方法意味着连“橘子”都被截掉了。
slice和substring的区别
至此我们已经了解了如何使用 slice 方法。
不过可能有小伙伴会觉得“有一种方法叫 substring,跟 slice 方法很像,但是有什么区别呢?”
substring 方法也和 slice 方法一样,都是可以截取字符串和数组的方法。
不过还是有一些区别的,所以这里我就解释一下slice和substring的区别。
当开始位置和结束位置的大小不同时
slice方法和substring方法在开始位置和结束位置的大小不同时会产生不同的结果。
例如:
<script type="text/javascript"> let string = '你好张三'; console.log(string.slice(2, 0)); </script>
果有字符串“你好张三”,则使用 slice 方法指定起始位置为“2”,结束位置为“0”。
本来应该是“开始位置<结束位置”,但是当设置为“开始位置>结束位置”。
显示结果:
如果开始位置大于结束位置, slice 方法会打印空白。
但是对于substring方法,可以得到以下结果:
<script type="text/javascript"> let string = '你好张三'; console.log(string.substring(2, 0)); </script>
输出字符串“你好”。
使用 substring 方法,如果开始位置大于结束位置,会自动切换到“开始位置 < 结束位置”。
换句话说,在这个例子中指定的 "2, 0"被自动替换为" 0, 2 " 。
所以结果是字符串“你好”。
当开始位置和结束位置的大小不同时,slice方法和substring方法会产生不同的输出结果。
如果指定小于 0
slice 方法和 substring 方法在指定小于 0 时结果不同。
我们来看下实际效果:
<script type="text/javascript"> let string = '你好张三'; console.log(string.slice(-2, 4)); </script>
字符串“你好张三”,在 slice 方法中,我们将起始位置指定为“-2”,将结束位置指定为“4”。
查看结果时内容如下:
结果输出为“张三”。
如果为 slice 方法指定小于 0的数字,则从字符串末尾开始按“-1、-2、-3...”的顺序添加数字。
因此将起始位置指定为“-2”表示“你好张三”中的-2字符“张三”为起始位置。
另一方面用 substring 方法指定的结果会是什么?
<script type="text/javascript"> let string = '你好张三'; console.log(string.substring(-2, 4)); </script>
结果字符串“你好张三”被输出。
出现这种结果的原因是,如果substring 方法指定了一个小于 0 的数字,则将其识别为“0”。
所以起始位置的“-2”变成了“0”,结果是“你好张三”。
如你所见,即使指定小于 0, slice 方法和 substring 方法也会产生不同的结果。
结语
本篇文章我们详细解释了JavaScript的slice方法。
slice方法可以通过指定开始和结束位置作为参数来截取字符串和数组。
需要注意的是字符串可以逐个字符的截取,但数组是逐个元素裁剪的。
另外还有一个类似的方法叫做substring,但是如果要指定的参数大小不同,或者指定小于0的值,结果也会不同,所以一定要正确使用。
本文来源:词雅网
本文地址:https://www.ciyawang.com/js-slice-90.html
本文使用「 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 」许可协议授权,转载或使用请署名并注明出处。
相关推荐
-
如何使用JavaScript跳转到另一个页面
使用window.location属性跳转到另一个页面。让我们看一下基础知识和一些实际示例。关于 window.location 属性window.location 属性返回一个 Location 对...
-
JavaScript编程语言中的变量和声明:存储和重复利用数据的关键
编程语言中有一个功能叫做变量,它可以用于存储各种数据,并在需要时进行重复利用。本文将介绍变量的作用和变量声明。在编写程序时,对变量的处理是必要的知识,因此让我们充分理解什么是变量。变量变量是指为不同类...
-
如何使用length函数在JavaScript中计算字符串长度
在JavaScript中,字符串是一种常见的数据类型。当我们处理字符串时,经常需要知道字符串的长度。JavaScript提供了一个内置函数——length函数,可以用来计算字符串的长度。length函...
-
使用JavaScript获取selectbox中的所有值
我正在编写示例代码以获取 javascript 中选择框中的所有值。使用目标选择框的属性“options”将其获取为“HTMLCollection”,然后将其排列并进行循环处理。获取所有值要获取选择框...
-
使用JavaScript确定日期和时间在多少小时内
在 javascript 中,我编写了一个示例代码来确定日期和时间是多少小时。可以通过获取日期和时间差的绝对值来确定。 确定日期和时间在多少小时内...
-
获取JavaScript数组的偶数和奇数元素
我正在编写示例代码以在 javascript 中获取数组的偶数和奇数元素。我认为最简单的方法是使用“filter”来确定索引号是偶数还是奇数。 获取偶数/奇数元素...
-
使用JavaScript代码实现URL获取#号后的值
在javascript中,我编写了一个示例代码以从任何URL调用URL片段的“#”之后获取值。 使用“lastIndexOf”和“slice”获取它。...
-
JavaScript错误“Uncaught TypeError: xxx.replace is not a function”的解决方法
javascript报错“Uncaught TypeError: xxx.replace is not a function”的原因及解决方法。 在字符串以外的对象上使用...
-
使用JavaScript代码判断指定日期是否在多少天之内
编写一个示例代码来确定日期在javascript中的天数。可以通过计算从UTC时间1970年1月1日开始的经过时间的差值换算成天数,求出绝对值来判断。...
-
使用JavaScript检查浏览器当前选项卡是否被切换
在javascript中,我写了一个示例代码,用于判断当前选项卡是否已经切换。 用“visibilitychange”获取页面显示状态的事件,用“visibilitySt...