`
zhangyaochun
  • 浏览: 2642466 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

array的indexOf

阅读更多

整理了一些设计Grid时候依赖产生的api思考,开始发布

 

需求是这样的:

 

1.设计前我定义了选中行的属性selectedRows是一个[],用来存放所有选中行的index信息,方便后面的选中和取消选中等相关操作。

 

2.现在你设计选中行和取消选中行的时候,你一定会判断当前的rowIndex是否在这个数组selectedRows里面,但是我们知道没有原生的api去支持这个arrray.indexOf.

 

先看看tangram的做法吧

 

 

/*
首先说明一下本人做了一下小修改,去掉了一个变量的定义。因为没有引用的地方。
*indexOf-search the index of the element in a array*
*@function*
*@param {Array} source---the array*
*@param element---the element*
*@param {number} fromIndex---the start index for search
*@remark(_ps:if fromIndex <0 will set it to source.length+fromIndex)*
*@return {number} if not find will return -1 just like js-lib*
*/
ZYC.array.indexOf = function(source,element,fromIndex){
      var _lenth = source.length,  //源数组对象的length
	      //iterator = element;
	  fromIndex = fromIndex || 0;     //给一个默认值,这个做法我个人一直遵循
	  if(fromIndex < 0){              
	     //if < 0  支持负值方向查询
		 fromIndex = Math.max(0,_lenth + fromIndex);
	  }
	  for(;fromIndex<_lenth;fromIndex++){
		    if(fromIndex in source && source[fromIndex] === element){
			   return fromIndex;
			}
	  }
	  return -1;
};

//在自己开始设计的时候并没有想到像tangram一样支持index似的的查找
//而且比较好的是支持类似于string.slice()这样的原生api的负值反向查找的功能 

 

通过上述的indexOf,我上面的需求也已经完成了

 

简单举例:

 

 

var selectedRows = [0,1,2];

//在设计getSelected的时候
//判断是否选中
//rowIndex是当前的行序号
//isSelected是当前行是否被选中
//g是grid对象或者api内部的this
var isSelected = (ZYC.array.indexOf(g.selectedRows,rowIndex) != -1);
1
1
分享到:
评论

相关推荐

    大数据项目、题目、源码

    大数据项目、题目、源码

    2025清华大学:迈向未来的AI教学实验-393页.pdf

    2025清华大学:迈向未来的AI教学实验-393页.pdf

    编程训练系统设计与实现.zip

    Java项目基于Springboot框架的课程设计,包含LW+ppt

    蛐蛐的PN532-GUI 3.0

    蛐蛐的PN532_GUI 3.0

    tarantool-2.4.2.68-2.el8.x64-86.rpm.tar.gz

    1、文件说明: Centos8操作系统tarantool-2.4.2.68-2.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf tarantool-2.4.2.68-2.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm

    SEAlign: 面向软件工程代理的对齐训练

    近年来,代码生成模型在自动化软件开发任务方面展示了令人印象深刻的性能,但在现实世界的软件工程场景中仍面临挑战。尽管当前的训练方法,特别是后训练,在解决竞争性编程问题方面表现出色,但它们未能充分准备模型以应对实际软件开发的复杂性。这种错位提出了一个关键问题:现有的对齐训练方法是否适合现实世界的软件工程任务?在本研究中,我们确定了这一问题,并提出了SEAlign,这是一种新颖的对齐框架,旨在弥合代码生成模型与现实世界软件开发任务之间的差距。SEAlign利用软件工程过程的独特特征(包括高质量的工作流步骤)来增强模型能力。我们的框架进一步采用蒙特卡洛树搜索(MCTS)进行多步决策过程的细粒度对齐,并通过偏好优化关键动作确保模型满足现实需求。我们在三个标准的现实世界软件工程基准上评估了SEAlign,包括HumanEvalFix、SWE-Bench-Lite和SWE-Bench-Verified。实验结果表明,SEAlign以最少的训练开销实现了最先进的性能。此外,我们使用SEAlign开发了一个基于代理的软件开发平台,成功自动化创建了几个小型应用程序。人类对这些应用程序的评估突显了任务性能和

    【计算机求职笔试】资源

    【计算机求职笔试】资源

    七彩汽球幼儿园教育教学课件模板.pptx

    七彩汽球幼儿园教育教学课件模板

    LabVIEW工程师必备:时间锁与三层加密验证应对客户欠款的技术实现

    内容概要:本文详细介绍了LabVIEW软件工程师为解决客户拖欠尾款问题所采取的技术措施。主要内容包括时间锁模块的开发,通过自动生成并加密时间戳确保无法通过修改系统时间绕过限制;序列号生成算法,利用客户公司名、机器码等生成唯一的动态激活码;以及三层加密验证方案,从传输层、本地验证到核心逻辑混淆,全面保护软件安全。文中还提供了具体的代码实现细节,如AES加密、SHA1哈希、Base64编码等,并强调了在实际应用中的注意事项和技术要点。 适合人群:LabVIEW软件工程师、嵌入式系统开发者、工业自动化领域的技术人员。 使用场景及目标:适用于需要防止客户恶意拖欠款项的工程项目,尤其是涉及硬件控制和长时间运行的工业控制系统。目标是在不影响正常业务的前提下,通过技术手段促使客户按时支付尾款。 其他说明:作者分享了多个实际案例,展示了这些技术手段的有效性和实用性。同时提醒开发者要注意合法合规,在合同中明确规定软件使用期限,避免不必要的法律纠纷。

    Java SpringBoot构建多用户B2B2C全平台商城系统的架构解析与实战技巧

    内容概要:本文详细介绍了使用Java SpringBoot搭建一个多用户B2B2C商城系统的技术实现。该系统覆盖PC、H5、小程序和APP四个终端,采用SpringBoot作为后端框架,Vue和Uniapp分别用于PC/H5端和移动端的前端开发。文章重点探讨了用户鉴权、商品管理、支付集成、权限控制等多个关键技术点,并分享了许多实际开发过程中积累的经验教训和技术优化方法。例如,通过自定义AccessDecisionManager实现复杂的权限控制,利用Redisson进行分布式锁管理以应对高并发场景,以及运用策略模式封装多种支付渠道等。 适合人群:具有一定Java开发经验和对前后端分离架构有一定了解的研发人员,尤其是关注电商平台开发的技术爱好者。 使用场景及目标:适用于希望深入了解大型电子商务平台内部运作机制的人群;旨在帮助开发者掌握如何高效地构建稳定可靠的多用户商城系统,提高开发效率并降低维护成本。 其他说明:文中不仅提供了详细的代码片段展示各个功能模块的具体实现方式,还特别强调了一些容易忽视但在实际应用中至关重要的细节问题,如跨端适配、性能优化等方面的内容。

    基于web的人力资源管理系统的设计与实现.zip

    Java项目基于Springboot框架的课程设计,包含LW+ppt

    基于PLC的液体饲料自动调配与饲喂系统设计:自动控制、梯形图程序与接线图解析

    内容概要:本文详细介绍了基于PLC的液体饲料自动调配与饲喂系统的开发过程和技术要点。首先,文章描述了系统硬件架构的设计,包括选用的PLC型号、传感器类型及其连接方式。接着,深入探讨了梯形图程序的具体实现,如急停按钮、液位传感器、定时器等功能的逻辑设计。此外,文章还讲解了配料算法的优化,特别是针对黏稠物料的特殊处理方法。最后,讨论了组态画面的设计,确保操作简便直观,并介绍了故障自检功能和模拟量处理的黑科技,如移动平均滤波和PWM调节流量。 适合人群:具有一定PLC编程经验的技术人员,尤其是从事工业自动化领域的工程师。 使用场景及目标:适用于需要提高饲料调配精度和效率的养殖场或饲料加工厂。主要目标是通过自动化控制系统,减少人为干预,提高生产效率和产品质量。 其他说明:文中提供了大量实用的调试经验和注意事项,帮助读者更好地理解和应用相关技术。

    西门子200SMART与V90伺服Profinet通讯及运动控制实践详解

    内容概要:本文详细介绍了西门子S7-200 SMART PLC与V90伺服驱动器通过Profinet进行通讯并实现运动控制的具体实践。首先讲述了硬件配置要点,强调了正确选择GSD文件和报文格式的重要性。接着深入探讨了Profinet报文的数据交换机制,展示了输入输出报文结构及其应用实例。随后讲解了基于状态机的运动控制逻辑设计,包括往返运动的实现方法以及报警处理机制。此外还涉及了WinCC人机界面的交互方式,提供了参数调整和实时监控的方法。最后分享了一些调试经验和常见问题解决方案,如位置漂移、通讯中断等问题的应对措施。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对西门子PLC和伺服系统有一定了解的人群。 使用场景及目标:适用于正在实施或计划实施类似项目的团队,旨在帮助他们更好地理解和掌握Profinet通讯技术和运动控制系统的设计与调试技巧。 其他说明:文中不仅包含了详细的理论解释,还有丰富的实战案例和代码片段,能够为读者提供全面的学习体验。同时提醒读者关注机电一体化的整体协调性,在实践中不断优化系统的性能表现。

    基于S7-200 PLC与组态王的温室大棚自动化控制系统设计与实现

    内容概要:本文详细介绍了使用西门子S7-200 PLC和组态王软件构建温室大棚自动化控制系统的方法。主要内容涵盖温度、湿度、光照等环境参数的采集与控制,具体包括梯形图程序设计、IO分配、接线规范以及组态王监控画面的设计。文中还分享了多个调试经验和常见问题解决方案,如模拟量信号抗干扰措施、通信配置优化等。通过该系统实现了对温室环境的精确控制,显著提高了农业生产效率并降低了人力成本。 适合人群:从事农业自动化领域的工程师和技术人员,尤其是有一定PLC编程基础和组态软件使用经验的从业者。 使用场景及目标:适用于中小型温室大棚的自动化改造项目,旨在提高农作物生长环境的稳定性,降低人工干预频率,增强系统的可靠性和易用性。 其他说明:作者提供了完整的GitHub项目链接供读者参考学习,并计划进一步扩展系统功能,如增加手机远程监控和二氧化碳浓度控制等功能。

    [跨境电商法律法规]课程标准+课件+教案+习题

    [跨境电商法律法规]配书资源

    单片机设计-门控自动照明电路

    单片机设计__门控自动照明电路

    长波红外超构透镜设计:基于硅圆柱的偏振不敏感聚焦与FDTD仿真

    内容概要:本文详细介绍了长波红外波段(8-14μm)硅基超构透镜的设计与仿真实现。首先探讨了硅作为超构透镜材料的优势及其在相位控制中的应用,特别是在10.6μm波长下实现偏振不敏感聚焦的技术细节。文中展示了如何利用FDTD仿真工具进行纳米柱参数扫描,获取相位变化规律,并通过Matlab实现相位匹配算法。此外,还讨论了远场计算中的关键技术和常见问题,如边界条件设置、相位突变处理以及焦平面电场分布的分析方法。最后,强调了该设计方案在多光成像系统的潜在应用价值。 适合人群:从事光学设计、超构材料研究及相关领域的科研人员和技术开发者。 使用场景及目标:适用于希望深入了解长波红外超构透镜设计原理的研究者,旨在帮助他们掌握从理论到实践的具体步骤,包括材料选择、仿真建模、相位匹配及性能评估等方面的知识。 其他说明:本文不仅提供了详细的理论解释和技术实现路径,还分享了许多实际操作中的经验和技巧,有助于提高仿真的准确性和效率。同时,代码工具链的设计具有良好的扩展性,支持跨波段的应用迁移。

    全国计算机等级证书,三级数据库技术考试大纲解析及备考指南

    全国计算机等级证书,三级数据库技术考试大纲解析及备考指南

    光学测量中移相算法、相位解包裹与泽尼克多项式拟合的Python实现及优化

    内容概要:本文详细介绍了光学测量中三个关键环节的技术实现:移相算法提取相位、相位解包裹以及泽尼克多项式拟合。首先,通过四步移相法利用Python代码提取包裹相位,解决了相位差π/2的问题。接着,针对包裹相位存在的间断问题,提出了多种相位解包裹方法,如行展开法和基于质量图引导的解包裹算法,确保相位的连续性和准确性。最后,讨论了泽尼克多项式拟合的应用,展示了如何将相位数据转换为泽尼克系数,用于波前像差分析。文中不仅提供了具体的代码实现,还探讨了各种方法的优点和局限性,并给出了优化建议。 适合人群:从事光学测量、干涉仪数据分析的研究人员和技术人员,尤其是有一定Python编程基础的人群。 使用场景及目标:适用于需要处理干涉条纹图像并进行相位分析的实验环境,旨在提高相位测量精度,减少噪声干扰,优化数据处理流程,最终获得精确的波前像差参数。 其他说明:文章强调了理论与实践相结合的重要性,鼓励读者通过动手编码加深对各算法的理解。同时,指出了现有方法的潜在问题,如过拟合和噪声敏感性,并提出了一些改进措施,如使用质量图引导解包裹和L1正则化约束系数。此外,还简要提及了神经网络在该领域的初步探索。

    taglib-extras-1.0.1-21.el8.x64-86.rpm.tar.gz

    1、文件说明: Centos8操作系统taglib-extras-1.0.1-21.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf taglib-extras-1.0.1-21.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm

Global site tag (gtag.js) - Google Analytics