javascript 常见工具函数(二)

11.数组等分切片:

this.newMapList = [];
for (var i = 0; i < this.mapDataList.length; i += 2) {this.newMapList.push(this.mapDataList.slice(i, i + 2));
}

12.js做奇偶判断:

if (this.mapDataList.length != 0) {this.mapDataList.length % 2 == 0 ? this.isEven = true : this.isEven = false;
}

13.js判断 元素 urls 是否为数组 :

let isarr = Object.prototype.toString.call(urls) === '[object Array]';

14.递归查找子对象或者组件:

/**
* 递归查找
* @param sp
* @param name
*/
public static FindChild(sp: Laya.Sprite3D, name: string) {if (sp.name == name) {return sp;} else {let target;let vObj;let i = sp._children.length;while (--i > -1) {vObj = sp._children[i];target = this.FindChild(vObj, name);if (target)return target;}}
}

15.数组乱序:

public static resetArr(arr) {var len = arr.length;for (var i = 0; i < len; i++) {var index = Math.floor(Math.random() * (len - i));var tem = arr[index];arr[index] = arr[len - i - 1];arr[len - i - 1] = tem;}return arr;
}

16.截取字符串长度常用函数:

//获取字符串长度
public static getLength = function (str) {return str.replace(/[\u0391-\uFFE5]/g, "aa").length;  //先把中文替换成两个字节的英文,再计算长度
};/**
* 截取指定长度的字符串
*/
public static getLengthStr = function (str, length) {var tmp = str;while (this.getLength(tmp) > length) {tmp = tmp.substr(0, tmp.length - 1);}return tmp;
};

17.返回范围内的值: 限制取值范围

/**
* 返回范围内的值
*/
public static clamp = function (min, value, max) {return Math.max(min, Math.min(value, max));
};

18.在权重数组中随机一个index

//在权重数组中随机一个index
public static randomIndexByWeight = function (array, total) {if (!total) {total = 0;for (var i = 0; i < array.length; i++) {if (array[i] == 0) continue;total += array[i];}}var ran = this.intRange(0, total);var index = 0;for (; index < array.length; index++) {if (array[index] == 0) continue;ran -= array[index];if (ran <= 0)return index;}return 0;
};

19.数组元素反转:

(1)  方法一:  reverse方法

var arr1 = ['a', 'b', 'c', 'd', 'e']
console.log('source arr1 =', arr1)
arr1.reverse()
console.log('target arr1 =', arr1)

(2) 方法二:元素交换位置

var arr = [1, 2, 3, 4, 5, 6]
console.log('source arr =', arr)
for (var i = 0; i < arr.length / 2; i++) {var temp = arr[i]arr[i] = arr[arr.length - 1 - i]arr[arr.length - 1 - i] = temp
}
console.log('target arr =', arr)

20.数组的随机函数:

/**
* 随机整数 [min, max)
* @param {最小值} min
* @param {最大值} max
*/
randomInt (min, max) {return Math.floor(Math.random() * (max - min) + min);
}/**
* 从数组中随机一个元素
* @param {数组} array
*/
arrayRandom (array) {var idx = this.randomInt(0, array.length);return array[idx];
}/**
* 从数组中随机一个元素并从数组中删除
* @param {数组} array
*/
shiftRandom (array) {var idx = this.randomInt(0, array.length);var value = array[idx];array.removeAt(idx);return value;
}

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

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

相关文章

从0到1入门C++编程——03 内存分区、引用、函数高级应用

文章目录 一、内存分区二、引用三、函数的高级应用1.默认参数2.占位参数3.函数重载 一、内存分区 C程序在执行时&#xff0c;会将内存大致分为4个区&#xff0c;分别是代码区、全局区、栈区和堆区。 代码区用来存放函数体和二进制代码&#xff0c;由操作系统进行管理。 全局区…

js统一公共请求处理与常用工具封装

一个完整的前端项目往往会进行一些必要的抽取公用代码进行封装&#xff0c;这里记录js常用工具及统一的公共请求的封装。 一 2017年 第一版web管理后台在用 web后台管理页面用 /*** Created by hua on 2017/8/24.*/ var requestResult{success :0,failure:1,failureMsg:2 }j…

Ubuntu上使用node搭建本地静态http服务器

1.搭建步骤 1.安装Node.js。首先确保你的Ubuntu系统已经安装了Node.js。如果没有安装&#xff0c;可以通过以下命令进行安装&#xff1a; sudo apt-get update sudo apt-get install nodejs #安装nodejs 2.安装npm。npm是Node.js的包管理器&#xff0c;一般会随着Node.js一…

[python]项目中导入外部包

导入外部包是在Python项目中使用外部库或模块。以下是一些导入外部包的常见方法&#xff1a; 使用import语句导入整个外部包&#xff1a; import package_name例如&#xff0c;导入numpy包&#xff1a; import numpy使用import语句给导入的外部包指定别名&#xff1a; impo…

SQL优化:条件提升

前面我们讲解了下分区表,分区表能提升性能,核心原理在于减少了需要加载的数据量。 我们所有的优化思路,基本都出自两个基本点: 以空间换时间;缩小需要处理的数据量。使用索引、物化视图是以空间换时间的典例,分区表,则是缩小需要处理的数据量的典例。 今天我们讲的条件…

Minio部署在服务器上,分享图片等文件提示,签名不对

问题描述: 上传没问题 下载没问题 就是分享有问题,签名有问题 找了很多解释,什么nginx代理问题啊,什么端口问题啊 什么防火墙问题啊 都是扯淡,一点用没有 最后发现,我的分享链接是127.0.0.1的地址,并不是我的服务器本机的地址 我访问图片都是要把ip改了再去访问,但是一开始并没…

HttpSession的使用

1 HttpSession 概述 在 Java Servlet API 中引入 session 机制来跟踪客户的状态。session 指的是在一段时间内&#xff0c;单个客户与 Web 服务器的一连串相关的交互过程。在一个 session 中&#xff0c;客户可能会多次请求访问同一个网页&#xff0c;也有可能请求访问各种不同…

【JavaSE】P1~P32 进制,字节,Java代码规范,常量,变量,运算符

目录 IDEA常用快键键和快捷用法一、需要复习的重难点概念1 进制、字节、DOS操作命令语句进制及转化字节DOS系统命令提示符 2 Java 常用代码规范3 常量及常量的打印4 变量数据类型及取值范围变量的概念和使用数据类型转换ASCII码表&#xff08;128种&#xff09;基本数据类型极其…

显示所有中国城市需要多少个汉字?

显示所有中国城市需要多少个汉字呢&#xff1f; 需要3678个汉字&#xff0c;看看我怎么知道的。 第一步&#xff1a;先找到中国的所有城市的名称 去哪里找到中国的所有城市的名称呢&#xff1f; 进入中国天气网&#xff1a;http://www.weather.com.cn/ 使用 F12 打开浏览器的调…

记 -bash: docker-compose: command not found 的问题解决

docker-compose: command not found 错误表明系统无法找到 docker-compose 命令。这可能是因为 docker-compose 并未正确安装&#xff0c;或者其可执行文件的路径未包含在系统的 PATH 变量中。 以下是我遇到时解决方法&#xff1a; 确保 Docker 和 Docker Compose 已安装&…

Excelize 入选“2023开源创新榜”优秀开源项目

近日&#xff0c;由中国科协科学技术传播中心、中国计算机学会、中国通信学会、中国科学院软件研究所共同主办&#xff0c;CSDN 承办的 2023 开源创新榜专家评审会在国家科技传播中心成功举办。Excelize 电子表格文档开源基础库入选“2023开源创新榜”优秀开源项目。 评审委员…

#CCSP学习心得总结:2023年新收获CCSP云安全认证

源自&#xff1a;张同学 选择CCSP的原因 选择学习CCSP的原因比较简单&#xff0c;公司这几年开始发力布局云原生和云安全的业务&#xff0c;作为云安全相关知识领域的补充渠道&#xff0c;我对比了CCSP和CCSK&#xff0c;最终选择了综合性较高的CCSP。由于我之前已经拿下了CIS…

【MCAL】AUTOSAR架构下PWM模块配置实践

目录 前言 1.MCAL简介 2. PWM模块详解 2.1 PWM模块概念介绍 2.2 PWM依赖的模块 2.3 PWM频率<

SwiftUI 打造一款可收缩的 HStack(二):对齐+ZStack

概览 在上篇 SwiftUI 打造一款可收缩的 HStack(一):“原汤化原食” 博文里,我们讨论了如何用 HStack 自身来实现可收缩的“HStack”。 而在本篇中,我们将尝试利用 SwiftUI 对齐 + ZStack 的方式完成相同的功能。 在本篇博文中,您将学到以下内容: 概览1. SwiftUI 中的对…

商业综合体能源管理系统功能有哪些?能够为企业带来哪些价值?

随着IT行业的迅猛发展&#xff0c;仅仅实现智能控制已无法满足当前绿色低碳发展的要求&#xff0c;随着智能设备的增多&#xff0c;同时也产生了越来越多的信息孤岛。通过信息技术构建能源管理系统&#xff0c;可以实现先进、智能、经济、可行的商业综合体能源管理解决方案。 …

静态网页设计——校园官网(HTML+CSS+JavaScript)

前言 声明&#xff1a;该文章只是做技术分享&#xff0c;若侵权请联系我删除。&#xff01;&#xff01; 使用技术&#xff1a;HTMLCSSJS 主要内容&#xff1a;对学校官网的结构进行模仿&#xff0c;对布局进行模仿。 主要内容 1、首页 首页以多个div对页面进行分割和布局…

解析为什么Go语言要使用[]rune而不是string来表示中文字符

众所周知&#xff0c;Go语言中有以下这些数据类型。但rune32这个go语言特有的数据类型&#xff0c;比较有意思却经常遭到忽视。所以今天探索学习一下这个数据类型的功能、用法。 Go基本数据类型 布尔&#xff1a;bool 字符串&#xff1a;string 整数&#xff1a; int int8 …

GitHub项目推荐:IDE-3D

项目地址 GitHub - MrTornado24/IDE-3D: [SIGGRAPH Asia 2022] IDE-3D: Interactive Disentangled Editing For High-Resolution 3D-aware Portrait Synthesisx 项目简述 这是一个交互式的3D画图工具。无论是改图还是成图&#xff0c;都能使用。是一个很有意思的项目。 项目…

12.3 【Screen配置】配置winmgr(一)更新中

一&#xff0c;winmgr配置简介 winmgr 部分用于指定与Screen相关的参数。 graphics.conf 配置文件必须包含一个 winmgr 部分&#xff0c;在其中指定global, display,和class参数。 winmgr 部分被标识为由 begin winmgr 和 end winmgr 包围的配置文件部分。 ... begin winmg…

c++ 基础 笔记

1 外部访问就是 实例类后 访问类中变量 class MyClass { public:int publicVar; // 公有变量 protected:int protectedVar; // 受保护变量 private:int privateVar; // 私有变量 };MyClass obj; obj.publicVar 1; // 正确: 公有变量可以在类外部直接访问 obj.protectedVar 2…