如何截取数组中选中的非字符串对象的特定字符?
如何从数组的数字元素中截取特定部分?
嘿,这个问题其实不难解决,咱们分两种常用的思路来处理,根据你最终需要的是字符串还是数字结果来选择:
方法一:转字符串后截取(适合需要字符串结果的场景)
因为你的数组元素是数字类型,没法直接像字符串那样做截取操作,所以第一步得把数字转换成字符串,再用字符串的截取方法拿到目标部分。
比如用toString()转字符串,再配合slice()方法:
const date = [2017121918, 2017122006, 2017122012]; // 处理date[1],获取后6位字符串 const targetStr = date[1].toString().slice(4); console.log(targetStr); // 输出 "122006"
解释下:toString()把数字2017122006转成字符串"2017122006",slice(4)表示从索引4的位置开始截取到末尾(索引从0开始算,第4位刚好是1),刚好得到你要的"122006"。
如果之后需要把结果转回数字,只需要用Number()或者加个+号就行:
const targetNum = +date[1].toString().slice(4); console.log(targetNum); // 输出 122006
方法二:纯数字运算(适合需要数字结果的场景)
如果你最终只需要数字形式的结果,完全可以用数学运算直接拿到,不用转字符串,效率更高。
因为你要的是后6位数字,所以可以用取模运算(%),模上1000000(10的6次方):
const date = [2017121918, 2017122006, 2017122012]; // 直接获取date[1]的后6位数字 const targetNum = date[1] % 1000000; console.log(targetNum); // 输出 122006
原理很简单:一个数字对10^n取模,得到的就是这个数字的最后n位,刚好符合你的需求。
内容的提问来源于stack exchange,提问作者Azam
相关产品推荐
相关产品推荐

