热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

对应关系字典的实现方式

我就发现了,其实干了一年多的前端,我热衷的并不是页面的排版布局,也不是页面与控制层的数据流通,更不是与后台的交互。。。我感兴

  我就发现了,其实干了一年多的前端,我热衷的并不是页面的排版布局,也不是页面与控制层的数据流通,更不是与后台的交互。。。我感兴趣的是复杂的逻辑运算,当然,按老大的话来理解,我这辈子如果只干前端,是没办法接触到了:咱们写程序,要把逻辑代码放到后台来实现,前端只是提供了一个展示页面与用户交互的平台。。。

  这话我就不能理解了,后台能写的前台同样可以实现啊,为什么只能提供展示交互,不能多些强大的复杂的逻辑呢,不服!我要逻辑!不要简单的处理数据TOT。

  于是乎,我走上了专精前台通后台之路。(老大建议的)

  这条路是艰辛的,我已经做好了面对无数困难的准备并保证不会退缩。光明的未来正等待着我!

 

  好了下面插播广告:

  前两天看博问上有人提了一个想实现对应关系的字典,觉得挺好玩的,实现一下:

  要求是有5个对应关系,“1”-A,“2”-B,“4”-C,“8”-D,"16"-E,

  需要构建一个字典对应关系如下:

  "1"-A,"2"-B,"3"-A/B,"4"-C,"5"-A/C。。。。为或的关系。

 

  当然有很多种方法实现,这里记录一个我最先想到的方法,两个数组对应下标值关系对应,然后通过循环递归的方式,提取对应下标值。

//首先定义两个数组,保持对应关系
const KEYLIST = [1,2,4,8,16];
const VALUELIST
= ['A', 'B', 'C', 'D', 'E'];
//设定最大值。
var maxNum = 10;//对每个值进行循环判断其对应的值应为何
for (var i = 1; i ) {
  var finalResault = doIt(i);console.log(i + ' - ' + finalResault);
}
//封装判断方法,获取传入值,计算其对应的字母关系,并返回function doIt (num) {
  //从后向前循环,判断 num 与 当前下标值谁大,num大则减去当前下标值后递归调用该方法,反之什么都不干。最后将下标对应字典值返回。
  var once = true;
  //记录是否有直接对应关系,否则就使用 '/' 拼串。
  for(var i = KEYLIST.length - 1; i >=0; i --) {
    if(num > KEYLIST[i]){once = false;
      var chars = doIt(num - KEYLIST[i]);
      return chars + '/' + VALUELIST[i];}else if ( num == KEYLIST[i]){
      if(once){
        return VALUELIST[i];}
      return '/' + VALUELIST[i];}}
}

  好清晰好清晰呀!哦吼吼吼。

  如有更好方法欢迎来怼。

转:https://www.cnblogs.com/guofan/p/6600622.html



推荐阅读
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • C++: 实现基于类的四面体体积计算
    本文介绍如何使用C++编程语言,通过定义类和方法来计算由四个三维坐标点构成的四面体体积。文中详细解释了四面体体积的数学公式,并提供了两种不同的实现方式。 ... [详细]
  • 本文详细介绍了如何构建一个高效的UI管理系统,集中处理UI页面的打开、关闭、层级管理和页面跳转等问题。通过UIManager统一管理外部切换逻辑,实现功能逻辑分散化和代码复用,支持多人协作开发。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有