[小笔记]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函数相关推荐

  1. [小笔记]TypeScript/JavaScript映射两组数据

    [小笔记]TypeScript/JavaScript映射两组数据 李俊才/CSDN博客 CSDN用户名:jcLee95 邮箱:291148484@163.com [需求]在Python3中有一个函数是 ...

  2. [小笔记]TypeScript/JavaScript数组转置

    [小笔记]TypeScript/JavaScript数组转置 CSDN:jcLee95 邮箱:291148484@163.com 在代数中,矩阵一个是一个方形数组,它由若干个长度相等的子数组构成.所谓 ...

  3. python中的range函数|python中的range函数|range()函数详解|Python中range(len())的用法

    本期目录 一.range()传递不同的参数 1.传递一个参数时 2.传递两个参数时 3.传递三个参数时 二.使用 range() 构建 for 循环 三.遍历列表时使用 range(len()) 的用 ...

  4. Python中的range函数

    大家好,我是翔宇!今天我们聊聊Python中很重要的range对象!(本文章基于Python3环境,Python2环境下的range会有所不同,但并不影响我们使) range对象 1.range对象是 ...

  5. Python中的range函数和arange函数的区别与联系

    [问题发现] 相信很多使用Python的小伙伴,都用到过range()函数,进行循环或遍历. for i in range(len(a)):print(a[i]) 但当我们用得正嗨时,可能突然看到其他 ...

  6. python中的range()函数

    range()函数:用于生成一个整数序列: range()的三种创建方式: 第一种:只有一个参数(小括号中只给了一个数)即range(stop) 例如:range(10)指的是默认从0开始,步长为1, ...

  7. python中的 range() 函数参数解释应用

    1.rang(x,y,z)    //生成一个数字类型的列表 //  x -----起始值,默认值为0,可以不写,但在某情况,比如 y和z都存在的时候,必须有x. // y-------结束值,没有默 ...

  8. python开发_python中的range()函数

    python中的range()函数的功能hen强大,所以我觉得很有必要和大家分享一下 就好像其API中所描述的: If you do need to iterate over a sequence o ...

  9. c++中的引用和python中的引用_【总结】C++、C#、Java、Javascript、Python中引用的区别...

    首先分两大阵营:C++中引用是一块阵营, C#.Java.Javascript.Python中引用是另一块阵营. 之所以这样分是因为同一阵营中引用使用方法基本一样. C++引用本质是个常量指针,而其他 ...

最新文章

  1. 实现账号在一端登入_跟我学spring security 基于数据库实现一个基本的登入登出...
  2. wsl 或者window terminal 下出现Java 14 switch expressions unrecognized解决方法:升级java jdk到14 or later
  3. LightGBM参数的贝叶斯搜索(有boost_from_average参数设置)
  4. Spring MVC 启动
  5. 机器学习Tensorflow基本操作:线程队列图像
  6. css和css的圣杯布局,CSS布局--圣杯布局和双飞翼布局以及使用Flex实现圣杯布局
  7. python之禅星号_那些用起来很爽,但用不好可能会被人打的Python骚操作
  8. java 熄灯问题_C++基础算法学习——熄灯问题
  9. 经典面试题:手机扫描二维码的测试用例(建议收藏)
  10. 读《弗洛伊德:作家与白日梦》
  11. 七剑下天山?七步搞定DB2查询优化!
  12. 普华永道-开放数据资产估值白皮书,首创“数据势能”估值模型
  13. httpqyl.php,linux运维架构--PHP开发-零基础学习PHP视频教程
  14. Android 如何优雅的实现控件计时功能
  15. 中国房价均价去年每平4600元 房改后涨幅最高
  16. http://blog.sina.com.cn/s/blog_a3d2fd2d0101hyu7.html
  17. VS2015:libcurl静态编译
  18. solaris 9 一般安全设置
  19. 基于天问block编译环境下ASRPRO语音芯片程序编写教程(一)软件下载与基础程序语句篇
  20. 如何生成github上的动态gif图

热门文章

  1. 【Numpy基础】矩阵数组相乘与神经网络的实现
  2. TypeError: Layout of the output array image is incompatible with cv::Mat
  3. LaTex中编译时出现“Undefined control sequence. l.178 \newlab”问题
  4. OpenLayers使用symbolizers样式特征
  5. 装饰器补充、三元表达式、生成式、匿名函数
  6. 第三章:3.9 引用Django 认证登陆
  7. CentOS使用NTFS-3G加载NTFS硬盘
  8. 强连通分量算法(2)
  9. 学习SharePoint你需要什么?
  10. 1,机器学习应用概述