[小笔记]TypeScript/JavaScript模拟Python中的Range函数

简介: [小笔记]TypeScript/JavaScript模拟Python中的Range函数

[小笔记]TypeScript/JavaScript
模拟Python中的Range函数

在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 ]
目录
相关文章
|
11天前
|
JavaScript 前端开发 Java
通义灵码 Rules 库合集来了,覆盖Java、TypeScript、Python、Go、JavaScript 等
通义灵码新上的外挂 Project Rules 获得了开发者的一致好评:最小成本适配我的开发风格、相当把团队经验沉淀下来,是个很好功能……
385 90
|
5天前
|
数据采集 JSON API
Python 实战:用 API 接口批量抓取小红书笔记评论,解锁数据采集新姿势
小红书作为社交电商的重要平台,其笔记评论蕴含丰富市场洞察与用户反馈。本文介绍的小红书笔记评论API,可获取指定笔记的评论详情(如内容、点赞数等),支持分页与身份认证。开发者可通过HTTP请求提取数据,以JSON格式返回。附Python调用示例代码,帮助快速上手分析用户互动数据,优化品牌策略与用户体验。
|
16天前
|
JavaScript
JS实现多条件搜索函数
JS封装的多条件搜索
|
5天前
|
数据采集 JSON API
Python 实战!利用 API 接口获取小红书笔记详情的完整攻略
小红书笔记详情API接口帮助商家和数据分析人员获取笔记的详细信息,如标题、内容、作者信息、点赞数等,支持市场趋势与用户反馈分析。接口通过HTTP GET/POST方式请求,需提供`note_id`和`access_token`参数,返回JSON格式数据。以下是Python示例代码,展示如何调用该接口获取数据。使用时请遵守平台规范与法律法规。
|
2月前
|
JavaScript 前端开发
JavaWeb JavaScript ③ JS的流程控制和函数
通过本文的详细介绍,您可以深入理解JavaScript的流程控制和函数的使用,进而编写出高效、可维护的代码。
87 32
|
1月前
|
JavaScript 前端开发 Java
详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用
柯里化是一种强大的函数式编程技术,它通过将函数分解为单参数形式,实现了灵活性与可复用性的统一。无论是参数复用、延迟执行,还是函数组合,柯里化都为现代编程提供了极大的便利。 从 Redux 的选择器优化到复杂的数据流处理,再到深度嵌套的函数优化,柯里化在实际开发中展现出了非凡的价值。如果你希望编写更简洁、更优雅的代码,柯里化无疑是一个值得深入学习和实践的工具。从简单的实现到复杂的应用,希望这篇博客能为你揭开柯里化的奥秘,助力你的开发之旅! 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一
|
5月前
|
JavaScript 前端开发 安全
探索Deno:新一代JavaScript/TypeScript运行时
Deno是由Node.js创始人Ryan Dahl发起的新一代JavaScript/TypeScript运行时,旨在提升安全性、模块化和性能。本文介绍了Deno的核心特性,如内置TypeScript支持、强大的模块系统、权限管理和测试工具,以及开发技巧,帮助开发者构建更安全、高效的Web应用。
|
5月前
|
JavaScript 前端开发 安全
JavaScript与TypeScript的对比,分析了两者的特性及在实际项目中的应用选择
本文深入探讨了JavaScript与TypeScript的对比,分析了两者的特性及在实际项目中的应用选择。JavaScript以其灵活性和广泛的生态支持著称,而TypeScript通过引入静态类型系统,提高了代码的可靠性和可维护性,特别适合大型项目。文章还讨论了结合使用两种语言的优势,以及如何根据项目需求和技术背景做出最佳选择。
160 4
|
5月前
|
机器学习/深度学习 人工智能 JavaScript
JavaScript和TypeScript的未来发展趋势及其在Web开发中的应用前景
本文探讨了JavaScript和TypeScript的未来发展趋势及其在Web开发中的应用前景。JavaScript将注重性能优化、跨平台开发、AI融合及WebAssembly整合;TypeScript则强调与框架整合、强类型检查、前端工程化及WebAssembly的深度结合。两者结合发展,特别是在Vue 3.0中完全采用TypeScript编写,预示着未来的Web开发将更加高效、可靠。
193 4
|
5月前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
111 2

热门文章

最新文章

下一篇
oss创建bucket