[小笔记]TypeScript/JavaScript模拟Python中的Range函数
[小笔记]TypeScript/JavaScript
模拟Python中的Range函数
李俊才/CSDN博客
CSDN用户名:jcLee95
邮箱:291148484@163.com
原创不易,感谢点赞支持。
在Python3中range() 接收1到3个参数,返回一个可迭代对象称之为
range序列
,而在Python2中返回的是一个列表
。在Python中的列表、元组、range序列称之为Python3的三大序列。但从使用上来,对于range函数被没有太大影响。为了模拟range函数,这里我们以数组作为range的返回类型模拟Python的range函数。
TypeScript
// range()函数的实现
export function range(x:number):number[]; // end
export function range(x:[number]):number[]; // [end]
export function range(x:[number,number]):number[]; // [start, end]
export function range(x:[number,number,number]):number[]; // [start, end, step]
export function range(x: string | number | any[]){let ar:number[] = [];if(typeof x ==='number'){for(let i=0; i<x; i++){ar.push(i)}}else if(x instanceof Array){if(x.length==1){/**重载:传入数组只有1个元素 */for(let i=0; i<x[0]; i++){ar.push(i)}}else if(x.length == 2){/**重载:传入2元素数组 */for(let i=x[0]; i<x[1]; i++){ar.push(i);}}else if(x.length==3){/**重载:传入3元素数组 */for(let i=x[0]; i<x[1]; i+=x[2]){ar.push(i);}}}return ar;
}
JavaScript
function range(x) {var ar = [];if (typeof x === 'number') {for (var i = 0; i < x; i++) {ar.push(i);}}else if (x instanceof Array) {if (x.length == 1) {/**重载:传入数组只有1个元素 */for (var i = 0; i < x[0]; i++) {ar.push(i);}}else if (x.length == 2) {/**重载:传入2元素数组 */for (var i = x[0]; i < x[1]; i++) {ar.push(i);}}else if (x.length == 3) {/**重载:传入3元素数组 */for (var i = x[0]; i < x[1]; i += x[2]) {ar.push(i);}}}return ar;
}
用例1
console.log(range(5));
Out[]:
[ 0, 1, 2, 3, 4 ]
用例2
console.log(range([5]));
Out[]:
[ 0, 1, 2, 3, 4 ]
用例3
console.log(range([2,7]));
Out[]:
[ 2, 3, 4, 5, 6 ]
用例4
console.log(range([2,7,3]));
Out[]:
[ 2, 5 ]
[小笔记]TypeScript/JavaScript模拟Python中的Range函数相关推荐
- [小笔记]TypeScript/JavaScript映射两组数据
[小笔记]TypeScript/JavaScript映射两组数据 李俊才/CSDN博客 CSDN用户名:jcLee95 邮箱:291148484@163.com [需求]在Python3中有一个函数是 ...
- [小笔记]TypeScript/JavaScript数组转置
[小笔记]TypeScript/JavaScript数组转置 CSDN:jcLee95 邮箱:291148484@163.com 在代数中,矩阵一个是一个方形数组,它由若干个长度相等的子数组构成.所谓 ...
- python中的range函数|python中的range函数|range()函数详解|Python中range(len())的用法
本期目录 一.range()传递不同的参数 1.传递一个参数时 2.传递两个参数时 3.传递三个参数时 二.使用 range() 构建 for 循环 三.遍历列表时使用 range(len()) 的用 ...
- Python中的range函数
大家好,我是翔宇!今天我们聊聊Python中很重要的range对象!(本文章基于Python3环境,Python2环境下的range会有所不同,但并不影响我们使) range对象 1.range对象是 ...
- Python中的range函数和arange函数的区别与联系
[问题发现] 相信很多使用Python的小伙伴,都用到过range()函数,进行循环或遍历. for i in range(len(a)):print(a[i]) 但当我们用得正嗨时,可能突然看到其他 ...
- python中的range()函数
range()函数:用于生成一个整数序列: range()的三种创建方式: 第一种:只有一个参数(小括号中只给了一个数)即range(stop) 例如:range(10)指的是默认从0开始,步长为1, ...
- python中的 range() 函数参数解释应用
1.rang(x,y,z) //生成一个数字类型的列表 // x -----起始值,默认值为0,可以不写,但在某情况,比如 y和z都存在的时候,必须有x. // y-------结束值,没有默 ...
- python开发_python中的range()函数
python中的range()函数的功能hen强大,所以我觉得很有必要和大家分享一下 就好像其API中所描述的: If you do need to iterate over a sequence o ...
- c++中的引用和python中的引用_【总结】C++、C#、Java、Javascript、Python中引用的区别...
首先分两大阵营:C++中引用是一块阵营, C#.Java.Javascript.Python中引用是另一块阵营. 之所以这样分是因为同一阵营中引用使用方法基本一样. C++引用本质是个常量指针,而其他 ...
最新文章
- 实现账号在一端登入_跟我学spring security 基于数据库实现一个基本的登入登出...
- wsl 或者window terminal 下出现Java 14 switch expressions unrecognized解决方法:升级java jdk到14 or later
- LightGBM参数的贝叶斯搜索(有boost_from_average参数设置)
- Spring MVC 启动
- 机器学习Tensorflow基本操作:线程队列图像
- css和css的圣杯布局,CSS布局--圣杯布局和双飞翼布局以及使用Flex实现圣杯布局
- python之禅星号_那些用起来很爽,但用不好可能会被人打的Python骚操作
- java 熄灯问题_C++基础算法学习——熄灯问题
- 经典面试题:手机扫描二维码的测试用例(建议收藏)
- 读《弗洛伊德:作家与白日梦》
- 七剑下天山?七步搞定DB2查询优化!
- 普华永道-开放数据资产估值白皮书,首创“数据势能”估值模型
- httpqyl.php,linux运维架构--PHP开发-零基础学习PHP视频教程
- Android 如何优雅的实现控件计时功能
- 中国房价均价去年每平4600元 房改后涨幅最高
- http://blog.sina.com.cn/s/blog_a3d2fd2d0101hyu7.html
- VS2015:libcurl静态编译
- solaris 9 一般安全设置
- 基于天问block编译环境下ASRPRO语音芯片程序编写教程(一)软件下载与基础程序语句篇
- 如何生成github上的动态gif图
热门文章
- 【Numpy基础】矩阵数组相乘与神经网络的实现
- TypeError: Layout of the output array image is incompatible with cv::Mat
- LaTex中编译时出现“Undefined control sequence. l.178 \newlab”问题
- OpenLayers使用symbolizers样式特征
- 装饰器补充、三元表达式、生成式、匿名函数
- 第三章:3.9 引用Django 认证登陆
- CentOS使用NTFS-3G加载NTFS硬盘
- 强连通分量算法(2)
- 学习SharePoint你需要什么?
- 1,机器学习应用概述