javascript 常见工具函数(一)

1.将JSON数据根据相同值,进行归类划分:

var arr = [{ time: "1", img: "22222" }, { time: "2", img: "555" }, { time: "1", img: "888888" }, { time: "2", img: "4444" }];
/**
* @param arr 需要归类的数组包含json数据
* @param same 依据哪一个key进行归类
* @param classify 进行归类的数据key隔天
*/
_proto.jeff = function (arr,same,classify) {var sameKey = same;var classifyKey = classify;var l = arr.length;var i, j, vJson = { sameKey: "", classifyKey:[]},vArr = [];for (i = 0; i < l; i++) {if (!arr[i]) break;vJson.sameKey = arr[i].sameKey;vJson.classifyKey.push(arr[i].classifyKey);for (j = i + 1; j < l - 1; j++) {if (!arr[j]) break;if (arr[j].sameKey != vJson.sameKey) continue;if (!vJson.classifyKey.contains(arr[j].classifyKey)) vJson.classifyKey.push(arr[j].classifyKey);arr.removeAt(j);}vArr.push(vJson);vJson = { sameKey: "", classifyKey:[]};}return vArr;
}

2.比较一个数值,是否在数组元素包含的范围内:

for (var i=0; i < weightsRange.length; i++) {for (var j = i + 1; j < weightsRange.length; j++) {console.log("j循环开始时候的后的空格数"+this.blankNum);if(blankWeight<=weightsRange[i]){this.blankNum = i+1;}else if(blankWeight<weightsRange[j]){  //原来这样写会出错 weightsRange[i]<blankWeight<weightsRange[j],因为这样的话,当大于                                                  //weightsRange[i]的时候就会进入else if的内部而忽略的  小于weightsRange[j]的情况this.blankNum = j+1; }break;}console.log("j循环结束后的空格数"+this.blankNum);if(this.blankNum!=0)break;
}

3.数组排序:

(1)使用方法:

dropTimes.sort(function (a, b) {return a - b;
})

(2)函数说明:

4.删除数值中指定位置的元素:

(1)使用方法:

this.tempTimes.splice(rd, 1); //删除数值中的rd位置上的元素,该方法会改变原始数组,返回新的数组

(2)函数说明:

5.截取指定位置的字符串:

(1)使用方法:

this.phone = this.phone.substr(0, this.phone.length - 1);

6.检测字符串是否匹配某个模式:正则表达式的应用

(1)使用方法:

/*验证手机号码*/
_proto.checkMobile = function (e) {var num = this.phone;var re = /^1\d{10}$/;   //手机号码的正则表达式if (re.test(num)) {this.getCode();this.cdTime = 60;this.mainUI.label_cd.text = this.cdTime + "s";this.mainUI.btn_gray.visible = true;this.mainUI.btn_getCode.visible = false;Laya.timer.loop(1000, this, this.cutdown);} else {this.mainUI.img_errorPhone.visible = true;}this.mainUI.box_keyboard.visible = false;
}

(2)函数说明:

7.判断当前窗口的URL链接中是否包含某字符串:

G.ISTEST = window.location.href.indexOf("web_test"); //是否连接测试版本服务器if (G.ISTEST > 0) {   //是测试服G.PIC_URL = "http://icbc.hwugame.com/icbcserver_test/upload/";G.GAMESERVER_POST_URL = "http://icbc.hwugame.com/icbcserver_test/protocol";G.WXSERVER_POST_URL = "http://icbc.hwugame.com/icbclogin_test/protocol";
} else {G.PIC_URL = "http://icbc.hwugame.com/icbcserver/upload/";G.WXSERVER_POST_URL = "http://icbc.hwugame.com/icbclogin/protocol";G.GAMESERVER_POST_URL = "http://icbc.hwugame.com/icbcserver/protocol";
}

8.js函数:字符串转换浮点型数值,并且保留指定的位数:

var s='29.3231565';
s=parseFloat(s).toFixed(1);  //这里是保留小数点后一位小数

9.js做冒泡排序:

if(vDatas){var l = vDatas.length;var i,j;var a, b;for(i = 0; i < l; i++){//排序for(j = i + 1; j < l; j++){a = vDatas[i];b = vDatas[j];a.p = a.owner.getMoveProgress();b.p = b.owner.getMoveProgress();if(a.p < b.p){//排名发生改变!b.rank = i + 1;a.rank = j + 1;vDatas[i] = b;vDatas[j] = a;isChange = true;}else{a.rank = i + 1;b.rank = j + 1;}}}
}

10.找出数组中,map中某个key的值最大的元素:

/**
* 获取击杀最多的玩家id
*/
_proto.getKillChampion = function(newlist){var killChampionId;var list = newlist.clone();var vPlayer1,vPlayer2;for(var i=0;i<list.length;i++){vPlayer1 = list[i];for(var y=i+1;y<list.length;y++){vPlayer2 = list[y];if(vPlayer1.killNum>vPlayer2.killNum){killChampionId = vPlayer1.id;list[y] = vPlayer1;}else{killChampionId = vPlayer2.id;vPlayer1 = vPlayer2;}}}return killChampionId;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/597189.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL Too many connections报错

MySQL 时不时出现Too many connections报错&#xff0c;重启MySQL就好了 但是过段时间又出现 一、解决方案&#xff1a; 1.修改mysql最大连接数 set global max_connections500; 以上是修改立即生效的&#xff0c;重启MySQL就会还原回去 在MySQL配置文件修改 max_connection…

力扣刷题-二叉树-二叉搜索树中的搜索

700 二叉搜索树中的搜索 给定二叉搜索树&#xff08;BST&#xff09;的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在&#xff0c;则返回 NULL。 例如&#xff0c; 在上述示例中&#xff0c;如果要找的值是 5&#x…

UDP单播

CMakeLists.txt文件中添加如下行&#xff1a; link_libraries(ws2_32) 1.发送端 #include <iostream> #include <winsock2.h> #include <cstdio>#pragma comment(lib, "Ws2_32.lib") // Link with ws2_32.libint main() {1.Initialize winsock…

JS 手写 new 函数

工作中我们经常会用到 new 关键字&#xff0c;new 一个构造函数生成一个实例对象&#xff0c;那么new的过程中发生了什么呢&#xff0c;我们今天梳理下 创建一个对象对象原型继承绑定函数this返回对象 先创建一个构造函数&#xff0c;原型上添加一个方法 let Foo function (n…

03、Kafka ------ CMAK(Kafka 图形界面管理工具) 下载、安装、启动

目录 CMAK&#xff08;Kafka 图形界面管理工具&#xff09;下载安装启动打开 cmak 图形界面 CMAK&#xff08;Kafka 图形界面管理工具&#xff09; Kafka本身并没有提供Web管理工具&#xff0c;而是推荐使用bin目录下各种工具命令来管理Kafka&#xff0c; 这些工具命令其实用起…

vue3中标签form插件

想写一个系统&#xff0c;对八字进行标注&#xff0c;比如格局&#xff0c;有些八字就有很多格局&#xff0c;于是就想着使用el-tag但是&#xff0c;form表单中如何处理呢&#xff1f; 这个时候&#xff0c;就需要自己写一个,modelValue是表单的默认属性 <template><…

以 Serverfull 方式运行无服务器服务

当前 IT 架构中最流行的用例是从 Serverfull 转向 Serverless 设计。在某些情况下&#xff0c;我们可能需要以 Serverfull 方式设计服务或迁移到 Serverfull 作为运营成本的一部分。 在本文中&#xff0c;我们将展示如何将 Kumologica flow 作为 Docker 容器运行。通常&#x…

HarmonyOS页面和自定义组件生命周期

页面和自定义组件生命周期 在开始之前&#xff0c;我们先明确自定义组件和页面的关系&#xff1a; 自定义组件&#xff1a;Component装饰的UI单元&#xff0c;可以组合多个系统组件实现UI的复用。页面&#xff1a;即应用的UI页面。可以由一个或者多个自定义组件组成&#xff…

52、全连接 - 特征与样本空间的对应关系

上一节说到经过全连接层之后,神经网络学习到的特征,会从隐层特征空间逐步映射到样本空间,这主要是由于全连接层可以融合全局的特征。 在经过全连接层之后,在 ResNet50 这个神经网络中会输出1000个特征的得分值,这1000个特征的得分值,便可以对应到图像的分类。 怎么对应…

居然在Web上就可以体验下苹果电脑的操作系统啦?

发现一款宝藏项目 MacOS &#xff0c;在Web上打造一款原汁原味的 MacOS系统&#xff0c;不同于以外的仿操作系统的web应用&#xff0c;该应用底层基于 HTML5的 FileSystem 和 IndexedDB 构建了文件系统&#xff0c;理论上可以基于这套系统实现任何的上层应用。作者还制定了可以…

洛谷P1024[NOIP2001 提高组] 一元三次方程求解(cpp)(二分查找)

目录 1.题目 2.思路 3.AC 1.题目 # [NOIP2001 提高组] 一元三次方程求解 ## 题目描述 有形如&#xff1a; 这样的一个一元三次方程。给出该方程中各项的系数&#xff08;a,b,c,d 均为实数&#xff09;&#xff0c;并约定该方程存在三个不同实根&#xff08;根的范围在 -…

【JavaEE进阶】 关于Spring mvc 响应

文章目录 &#x1f38d;序言&#x1f333; 返回静态⻚⾯&#x1f332;RestController 与 Controller 的关联和区别&#x1f334;返回数据 ResponseBody&#x1f38b;返回HTML代码⽚段&#x1f343;返回JSON&#x1f340;设置状态码&#x1f384;设置Header&#x1f6a9;设置Con…

【hyperledger-fabric】部署和安装

简介 对hyperledger-fabric进行安装&#xff0c;话不多说&#xff0c;直接开干。但是需要申明一点&#xff0c;也就是本文章全程是开着加速器进行的资源操作&#xff0c;所以对于没有开加速器的情况可能会由于网络原因导致下载资源失败。 资料提供 1.官方部署文档在此&#…

解密!电梯机房温差之谜

小伍&#xff1a;大家好&#xff0c;本次小伍带大家来到【电梯机房】&#xff0c;我们来先测一下温度 电梯机房【外屋】&#xff1a;23.2 度 小伍&#xff1a;好&#xff0c;我们再看里面的设备温度 电梯机房【外里】&#xff1a;74 度 523能源&#xff1a;哇塞&#xff0c;…

写了个在线 SQL 转换工具,支持 Oracle、Mysql、SQLServer 语句互转。

原本用户公司要迁移 oracle 到 mysql 上&#xff0c;数据库方言上有一定的区别&#xff0c;老的 SQL 又臭又长转起来也不太方便&#xff0c;尤其是日期类的完全无法适用&#xff0c;所以才写了这个工具&#xff1a;不同类型sql互转在线工具-开发者工具 可以用于不同数据库之间的…

XML解析神器:Apache Commons Digester

第1章&#xff1a;引言 大家好&#xff0c;我是小黑。今天咱们聊聊一个在现代编程中经常遇到的话题&#xff1a;XML解析。你可能知道&#xff0c;XML&#xff08;可扩展标记语言&#xff09;因其灵活性和可读性&#xff0c;在配置文件、数据交换等方面广泛使用。但是&#xff…

第一节 初始化项目

系列文章目录 第一节 初始化项目 文章目录 操作步骤 总结 操作步骤 打开cmd 输入 vue ui 在打开的网页中点击“创建”&#xff0c;复制文件夹路径并粘贴点击“在此创建新项目” 输入项目名称 点击下一步选择手动配置 选择babel、router、vuex、css pre-processors、 linter建…

(Linux)虚拟机配置固定IP

Linux操作系统的IP地址是通过DHCP服务获取的&#xff0c;也就是动态获取IP地址&#xff0c;每次重启设备后都会获取一次&#xff0c;会导致IP地址频繁变更&#xff0c;为了不频繁更新映射关系&#xff0c;我们需要IP地址固定下来。 1.在VM中配置IP地址网关和网段 打开虚拟网络…

【程序】USART串口通信接收数据(标准库带printf)

&#x1f31f;博主领域&#xff1a;嵌入式领域&人工智能&软件开发 前言&#xff1a;本程序使用stm32f429作为主控&#xff0c;使用串口1&#xff0c;使用的是标准库程序版本。&#xff08;其它主控/串口x&#xff0c;实现过程类似&#xff09;。本程序亲测无误。 目录…

HubSpot集成怎么样?有哪些优势和特点?

HubSpot在集成方面表现出色&#xff0c;并为用户提供了强大的集成能力。以下是HubSpot集成的一些特点和优势&#xff1a; 1.丰富的集成生态系统&#xff1a; HubSpot拥有丰富的应用市场&#xff0c;用户可以轻松访问并集成多种第三方应用。这包括与营销、销售、客户服务等领域…