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.hqwc.cn/news/321887.html

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

相关文章

2分钟了解什么是socket?

文章目录 概念比喻类型Socket 与 TCP、UDP的关系 概念 Socket 是提供网络通信功能的编程接口&#xff08;API&#xff09;&#xff0c;提供了网络通信的基本操作&#xff0c;允许程序或进程之间进行数据交换。是传输层协议的具体软件实现&#xff0c;它封装了协议底层的复杂实…

常见的并查集题目

总结 并查集逻辑实现的优化有两种&#xff0c;第一种是查找时路径压缩&#xff0c;第二种是按秩合并&#xff0c;合并时将高度较小的树作为较高树的子树,从代码量来看&#xff0c;推荐使用路径压缩&#xff0c;可以参考lc 547. 省份数量的两种UnionFind写法 题目 1 LC990. 等…

一文讲透Linux应用编程—进程原理

文章目录 程序的开始和结束main函数由谁调用&#xff1f;程序是如何结束的&#xff1f;atexit注册进程终止处理函数return、 exit、_exit三者区别 进程环境环境变量进程运行的虚拟空间 进程的正式引入什么是进程&#xff1f;进程ID多进程调度原理 fork创建子进程为什么要创建子…

教你用python画图—Turtle详细教程

Turtle模块绝对是吸引非专业代码开发者人员学习python入门的好工具 通过turtle几行代码的执行软件就会画出漂亮的图形&#xff0c;美观而且有成就感&#xff0c;这样一下子对python编程就产生了兴趣。 这些漂亮的图形如三角形、五角星、机器猫等。在写代码的时候改变几个参数…

BLE Mesh蓝牙组网技术详细解析之Foundation Model Layer基础模型层(七)

目录 一、什么是BLE Mesh Foundation Model Layer基础模型层&#xff1f; 二、模型 2.1 配置模型 2.2 健康模型 三、状态 3.1 Composition Data 四、资料获取 一、什么是BLE Mesh Foundation Model Layer基础模型层&#xff1f; BLE Mesh Foundation model Layer是蓝牙…

拼多多砍价群2024年最新二维码

随着移动互联网的快速发展&#xff0c;小程序成为了人们生活中不可或缺的一部分。它们轻便、快捷&#xff0c;无需下载安装&#xff0c;即可随时随地使用。在这个背景下&#xff0c;小程序互助群应运而生&#xff0c;成为了一种新型的社群形式&#xff0c;旨在帮助用户更好地利…

基于sy3130光感入耳检测功能成功实现

基于sy3130光感入耳检测功能成功实现 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群赠送语音信号处理降噪算法,蓝牙耳机音频,DSP音频项目核心开发资料, 1 芯片介绍 2 电路实现 3 寄存器列表

Linux习题1

解析&#xff1a;Tcsh是csh的增强版&#xff0c;并且完全兼容csh。它不但具有csh的全部功能&#xff0c;还具有命令行编辑、拼写校正、可编程字符集、历史记录、作业控制等功能。 AWK是一种优良的文本处理工具&#xff0c;Linux及Unix环境中现有的功能最强大的数据处理引擎之一…

60.网游逆向分析与插件开发-游戏增加自动化助手接口-游戏公告功能的逆向分析与测试

内容来源于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;文字资源读取类的C还原-CSDN博客 码云地址&#xff08;master分支&#xff09;&#xff1a;https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号&#xff1a;878db7708de09b448010ef54526fe…

新手深入浅出理解PyTorch归一化层全解析

目录 torch.nn子模块normal层详解 nn.BatchNorm1d BatchNorm1d 函数简介 函数工作原理 参数详解 使用技巧与注意事项 示例代码 nn.BatchNorm2d BatchNorm2d 函数简介 函数工作原理 参数详解 使用技巧与注意事项 示例代码 nn.BatchNorm3d BatchNorm3d 函数简介 参…

Linux文件的扩展属性 attr cap

文件属性 Linux文件属性分为常规属性与扩展属性&#xff0c;其中扩展属性有两种&#xff1a;attr与xattr. 一般常规的文件属性由stat API 读取&#xff0c;一般是三种权限&#xff0c;ower, group&#xff0c;时间等。 扩展属性attr 用户态API ioctl(fd, FS_IOC32_SETFLAGS…

Windows中磁盘未知没有初始化怎么办?

当我们尝试在Windows11/10/8/7上使用外部硬盘驱动器时&#xff0c;在小概率情况下可能会遇到磁盘未知没有初始化情况&#xff0c;此时如果您进入磁盘管理工具中查看&#xff0c;将会发现您的外部硬盘驱动器显示为未知、未初始化、没有磁盘空间&#xff0c;或者在某些情况下它还…