javascript 常见工具函数(三)

21.克隆数组的几种方法:

(1)slice方法:

let arr = [1,2,3,4]
let arr1= arr.slice()  //或者是   let arr1= arr.slice(0)
arr[0] = 6
console.log(arr)   // [6, 2, 3, 4]
console.log(arr1)  // [1, 2, 3, 4]

(2)自己封装一个myClone函数:

Array.prototype.myClone = function(){
    let newArr=[];
    for(let i=0;i<this.length;i++) {
        newArr.push(this[i]);
    }
    return newArr;
}
let arr = ['aaa','bbb','ccc','wwwww','ddd']
let arr2 = arr.myClone()
console.log(arr)   //["aaa", "bbb", "ccc", "wwwww", "ddd"]
console.log(arr2)  //["aaa", "bbb", "ccc", "wwwww", "ddd"]
console.log( arr2 === arr )   //false

(3)展开运算符  [...arr]  :

const arr1 = [1, 2];
const arr2 = [...a1];
arr1[0] = 6
console.log(arr1) // [6, 2]
console.log(arr2) // [1, 2]

(4)concat方法:

var  arr1 = [1,2,3]
var  arr2 = arr1.concat()   //或者是  var  arr2 = arr1.concat([])
arr1[0] = 6
console.log(arr1)  //[6,1,2]
console.log(arr2)  //[1,2,3]

(5)Object.assign()  :

let arr = [1,2,3,4]
let arr1 = []
Object.assign(arr1,arr)
arr[0] = 6
console.log(arr)  // [6, 2, 3, 4]
console.log(arr1) // [1, 2, 3, 4]  

22.将变量的值限制在某一范围内:因为这里是静态方法,直接用类名就可以调用,不需要实例化类

  /**
     * 将之限制在取值范围内 [min, max]
     * @param {最小值} min
     * @param {输入值} value
     * @param {最大值} max
     */
    static clam_GameKey_p (min, value, max) {
        return Math.max(min, Math.min(value, max));
    }

23.生成指定位数的随机字符:Number.MAX_VALUE---int的最大值

fromCharCode:

charCodeAt:

   /**
     * 随机整数 [min, max)
     * @param {最小值} min
     * @param {最大值} max
     */
    randomInt(min, max) {
        return Math.floor(Math.random() * (max - min) + min);
    }

    /**
    * 生成指定位数的随机字符串
    *
    */
    generateString(count) {
        // body...
        let str = ''
        if (typeof count === "number") {
            for (let i = 0; i < count; i++) {
                if (Math.random() < 0.5) {
                    str += String.fromCharCode(this.randomInt('0'.charCodeAt(), '0'.charCodeAt() + 9))
                }
                else {
                    str += String.fromCharCode(this.randomInt('a'.charCodeAt(), 'a'.charCodeAt() + 25))
                }
            }
        }
        return str;
    }

24.js判断 对象是否包含特定的自身(非继承)属性:hasOwnProperty

//判断自身属性是否存在
var o = new Object();
o.prop = 'exists';
function changeO() {
    o.newprop = o.prop;
    delete o.prop;
}
o.hasOwnProperty('prop'); // true
changeO();
o.hasOwnProperty('prop'); // false

25.判断对象是否为字符串:

var obj = "abc"
if(typeof(obj) == 'string')
{
    alert("this object is string");
}

26.判断对象是否为数组:

Array.isArray([]) //true

27.获取当前是周几:new  Date().getDay()

28.计算是否隔天,隔天执行逻辑:

/**获取玩家进入游戏是周几 */
    get startGameDay$() {
        if (this._startGameDay$ == void 0) {
            let firstGame = new Date().getDay();
            this._startGameDay$ = LocalData$.getL_GameKey_ocalData(LocalData$.KEY.STARTGAMEDAY$, firstGame);
        }
        return this._startGameDay$;
    }


    /**设置玩家进入游戏的时间是周几 */
    setStartGameDay$(value) {
        this._startGameDay$ = value;
        LocalData$.setL_GameKey_ocalData(LocalData$.KEY.STARTGAMEDAY$, this._startGameDay$);
    }

每次进入游戏,判断时间:

29.判断是否是数组类型:

方法一:

var obj = [4,67,23];
obj instanceof Array; //return true 
obj.constructor == Array; // return true

方法二:

if(Array.isArray(value)){
    return true;
}

30.数组按照指定长度分组:

 static groupArr$(array, subGroupLength) {
        let index = 0;
        let newArray = [];
        while (index < array.length) {
            newArray.push(array.slice(index, index += subGroupLength));
        }
        return newArray;
    }

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

docker安装esrally教程

本来用源码安装&#xff0c;首先要安装git,python,jdk&#xff0c;还要配环境特别繁琐&#xff0c;好不容易安装好后运行报如下错误&#xff0c;在官网和github搜不到解决方案&#xff0c;无奈之下只能用docker安装。 [ERROR] Cannot race. Error in load generator [0]Cannot…

MS5148T荣获2023电子信息半导体行业年度卓越产品

MS5148T是一款适合高精度、低成本测量应用的24bit模数转换器。内部集成了低噪声可编程增益放大器、高精度Δ-Σ模数转换器和内部振荡器、低温漂基准和两路匹配的可编程电流源&#xff0c;以及传感器检测Burnout电流源和偏置电压产生器&#xff0c;支持四路差分输入。 主要特点…

设计模式之建造者模式【创造者模式】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档> 学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某…

rime中州韵小狼毫 inputShow lua Filter 输入字符透传滤镜

在 rime中州韵小狼毫 inputShow lua Translator 一文中&#xff0c;我们通过 inputShow.lua 定制了 inputShow_translator&#xff0c;这使得我们的输入方案可以将用户输入的字符透传到候选列表中来。如下&#x1f447;&#xff1a; &#x1f446;上图中我们在候选列表中看到了…

excel需要把一个表格的信息放到另一个表格中,但是两个表格列的顺序不同,用VLOOKUP函数

情景再现&#xff1a; 图1 图2 任务&#xff1a;图1中信息不全&#xff0c;需要把图2中的身份证号和手机号填到图1中&#xff0c;且需保持图1人员顺序不变。 困难之处&#xff1a;1.目前人员较少&#xff0c;尚且可以搜索着一个个输入&#xff0c;但如果好几百好几千人呢&am…

学习Vue及项目工程化

学习Vue及项目工程化 Vue快速上手插值表达式 Vue基本命令v-htmlv-showv-if 和 v-else 和 v-else-ifv-on和click函数调用v-bindv-for案例--书架 v-model功能总结 综合案例-小黑记事本列表渲染删除功能添加功能底部统计清空 项目工程化更换npm镜像方式一&#xff1a;在网页是去创…

RKE安装k8s及部署高可用rancher之证书在外面的7层LB(nginx中) 7层负载均衡

一 了解 Rancher 1 推荐架构 安装 Rancher 的方式有两种&#xff1a;单节点安装和高可用集群安装。因为单节点安装只适用于测试和 demo 环境&#xff0c;而且单节点安装和高可用集群安装之间不能进行数据迁移&#xff0c;所以推荐从一开始就使用高可用集群安装的方式安装 Ran…

初学者快速入门学习日语,PDF文档音频教学资料合集

一、资料描述 本套学习资料是很全面的&#xff0c;共有734份文件&#xff0c;包括PDF&#xff0c;PPT&#xff0c;表格&#xff0c;图片&#xff0c;音频等多种格式&#xff0c;可以作为初级日语的学习教材&#xff0c;也是非常适合初学者入门的&#xff0c;可以帮助大家快速的…

在macOS中搭建.NET MAUI开发环境

文章目录 准备安装扩展安装 .NET安装工作负载安装 Xcode 命令行工具调试安卓应用安装 JDK安装 Android SDK 安装 Android 模拟器安装模拟器安装镜像创建虚拟机 同意许可条款创建 MAUI 项目调试 MAUI 应用切换调试目标 参考资料 准备 一台 macOS Monterey 以上的电脑安装 XCode…

Android14之audit2allow自动生成Selinux规则(一百七十五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

软考网络工程师教程第五版(2018最新版)

软考网络工程师教程第五版(2018最新版) 内容简介 本书是全国计算机技术与软件专业技术资格(水平)考试指定用书。作者在前4版的基础上,根据网络工程师新版大纲的要求,针对考试的重点内容做了较大篇幅的修订,书中主要内容包括数据通信、广域通信网、局域网、城域网、因特网…

Vue实现JSON字符串格式化编辑器组件

相信很多同学都用过网上的在线JSON格式化工具来将杂乱的JSON数据转换成易于我们阅读和编辑的格式。那么&#xff0c;你有没有想过自己动手实现一个这样的工具呢&#xff1f;今天&#xff0c;我将介绍如何使用Vue.js来构建一个简单的JSON格式化工具。 功能简述 支持格式化JSON字…

一起读《奔跑吧Linux内核(第2版)卷1:基础架构》- 大小端字节序

关注 点赞 不错过精彩内容 大家好&#xff0c;我是硬核王同学&#xff0c;最近在做免费的嵌入式知识分享&#xff0c;帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作! Hello&#xff0c;大家好我是硬核王同学&#xff0c;是一名刚刚工作一年多的Linux工程师&#xff0…

2024年【陕西省安全员A证】考试报名及陕西省安全员A证模拟试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 陕西省安全员A证考试报名考前必练&#xff01;安全生产模拟考试一点通每个月更新陕西省安全员A证模拟试题题目及答案&#xff01;多做几遍&#xff0c;其实通过陕西省安全员A证作业模拟考试很简单。 1、【多选题】《建…

基于ssm的职业高中学情成绩系统设计论文

摘 要 如今的时代&#xff0c;是有史以来最好的时代&#xff0c;随着计算机的发展到现在的移动终端的发展&#xff0c;国内目前信息技术已经在世界上遥遥领先&#xff0c;让人们感觉到处于信息大爆炸的社会。信息时代的信息处理肯定不能用之前的手工处理这样的解决方法&#x…

计算机毕业设计------学习论坛小程序

项目介绍 本项目分为两种用户类型&#xff0c;分别是普通用户&#xff0c;管理员用户&#xff1b; 管理员用户包含以下功能&#xff1a; 管理员登录,个人中心,用户管理,分类信息管理,论坛帖子管理&#xff0c;资料帖子管理&#xff0c;举报信息管理&#xff0c;系统管理功能…

【华为机试】2023年真题B卷(python)-靠谱的车

一、题目 题目描述&#xff1a; 程序员小明打了一辆出租车去上班。出于职业敏感&#xff0c;他注意到这辆出租车的计费表有点问题&#xff0c;总是偏大。 出租车司机解释说他不喜欢数字4&#xff0c;所以改装了计费表&#xff0c;任何数字位置遇到数字4就直接跳过&#xff0c;其…

简易机器学习笔记(四)初识卷积神经网络

前言 第一次写卷积神经网络&#xff0c;也是照着paddlepaddle的官方文档抄&#xff0c;这里简单讲解一下心得。 首先我们要知道之前写的那些东西都是什么&#xff0c;之前写的我们称之为简单神经网络&#xff0c;也就是简单一层连接输出和输出&#xff0c;通过前向计算和逆向…

C#使用 OpenHardwareMonitor获取CPU或显卡温度、使用率、时钟频率相关方式

C# 去获取电脑相关的基础信息&#xff0c;还是需要借助 外部的库&#xff0c;我这边尝试了自己去实现它 网上有一些信息&#xff0c;但不太完整&#xff0c;都比较零碎&#xff0c;这边尽量将代码完整的去展示出来 OpenHardwareMonitor获取CPU的温度和频率需要管理员权限 在没…

基于SSM的游戏资源管理系统+vue论文

摘 要 信息数据从传统到当代&#xff0c;是一直在变革当中&#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光&#xff0c;因为传统信息管理从时效性&#xff0c;还是安全性&#xff0c;还是可操作性等各个方面来讲&#xff0c;遇到了互联网时代才发现能补上自古…