1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 返回参数数字的千分位分隔符字符串+按指定长度切割数组

返回参数数字的千分位分隔符字符串+按指定长度切割数组

时间:2023-12-07 13:00:32

相关推荐

返回参数数字的千分位分隔符字符串+按指定长度切割数组

刷题的时候刷到了返回参数数字的千分位分隔符字符串的题目

题目:返回参数数字的千分位分隔符字符串输入:12345输出:12,345输入:1234567输出:1,234,567

(很抓马,我的脑袋空空)

目前思路如下:

1.将数字转成数组2.按长度3以末尾为始分割成新的数组3.以“,”连接新的数组4.将新数组转成字符串输出

进行到第二步时,本想凭自己的大脑写出来,结果emm

好的 参考来了

最后不足len长度的也以一个数组存储,原文👇

js拆分数组(将一个数组以len长度分割,最后不足len长度的也以一个数组存储)_云风xe的博客-CSDN博客

/* 按指定长度切割数组 */function split_array(arr,len){for(let i =0;i<arr.length;i+=len){ret.push(arr.slice(i,i+len))}}

跟着博主敲了一下,接下来引申一下从数组末尾开始以len长度分割,头不足len的也以一个数组存储;

怎么说,觉得应该会很容易,但,没直接改出来,报错了,写了一个费劲的👇

实现:从尾按长度切割数组思路:1.确定能切割点索引2.使用slice按段取出代码:function _splitArr(arr,len){// 保存切割点索引let arrcutIndex = []for(let i = arr.length;i>0;i-=len){arrcutIndex.push(i)}arrcutIndex.reverse()let ret = []arrcutIndex.reduce((pre,cur,index)=>{ret.push(arr.slice(pre,cur))return cur},0)return ret}_splitArr([1,2,3,4,5,6,7],3)

还有问题,就不做严谨讨论了,想要做出题目那样,需要将小数组使用jion方法,接连jion();

完整代码如下:

function _cut(incoming,len){let arrif(incoming>=0){arr = incoming.toString().split('')return split_array_tail(arr,len)}else{arr = Math.abs(incoming).toString().split('')return '-'+split_array_tail(arr,len)}// let arr = incoming.toString().split('') 没考虑到0和负数let ret = []function split_array_tail(arr,len){let ret = []let temparr = []for(i = arr.length;i>0;i-=len){temparr.push(i)}temparr.reverse()temparr.reduce((pre,cur,index)=>{console.log(pre,cur,index)ret.push(arr.slice(pre,cur).join(''))return cur},0)return ret.join(',')}}_cut(1234567,3)

以上 是我的思路,我要去提交了,如果不对,我就去借鉴通过人的脑子了

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。