javascript 常见工具函数(三)

news2024/11/28 14:49:04

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;
    }

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

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

相关文章

Android Jetpack学习系列——Navigation

写在前面 Google在2018年就推出了Jetpack组件库&#xff0c;但是直到今天我才给重视起来&#xff0c;这真的不得不说是一件让人遗憾的事。过去几年的空闲时间里&#xff0c;我一直在尝试做一套自己的组件库&#xff0c;帮助自己快速开发&#xff0c;虽然也听说过Jetpack&#…

Stable Diffusion模型概述

Stable Diffusion 1. Stable Diffusion能做什么&#xff1f;2. 扩散模型2.1 正向扩散2.2 反向扩散 3. 训练如何进行3.1 反向扩散3.2 Stable Diffusion模型3.3 潜在扩散模型3.4 变分自动编码器3.5 图像分辨率3.6 图像放大 4. 为什么潜在空间是可能的&#xff1f;4.1 在潜在空间中…

【智慧地球】星图地球 | 星图地球超算数据工场

当前空天信息处理涉及并发并行的大量计算问题&#xff0c;需要高性能计算、智能计算联合调度&#xff0c;以此来实现多算力融合&#xff1b;而我国算力产业规模快速增长&#xff0c;超算算力资源正需要以任务驱动来统筹。 基于此&#xff0c;中科星图与郑州中心展开紧密合作&a…

Qt学习_17_一些关于QTableWidget的记录

1 QTableWidget::clear() 程序异常退出 近日&#xff0c;项目中使用到QTableWidget&#xff0c;遇到一个问题&#xff0c;项目需要清空这个表格&#xff0c;但是无论调用clear()&#xff0c;clearContents()&#xff0c;程序都报&#xff1a;程序异常退出。 而且项目程序还比较…

OpenVINS学习5——VioManager.cpp/h学习与注释

前言 之前又看到说VioManager.cpp/h是OpenVINS中的核心程序&#xff0c;这次就看看这里面都写了啥&#xff0c;整体架构什么样&#xff0c;有哪些函数功能。具体介绍&#xff1a; VioManager类 整体分析 VioManager类包含 MSCKF 工作所需的状态和其他算法。我们将测量结果输…

二维码地址门牌管理系统:物业管理的未来趋势

文章目录 前言一、数字化管理与便捷服务二、身份认证与安全保障三、业主便利与贴心服务四、未来发展趋势 前言 在数字化时代&#xff0c;物业管理面临着不断增加的挑战。为了提高管理效率、服务业主&#xff0c;二维码门牌管理系统应运而生。本文将探讨这一新型管理方式&#…

【OpenBMC】的内部README 模板

OpenBMC 本项目的AST2500分支核心代码的机型是ast2500-default&#xff0c;克隆代码后进入编译环境的命令为&#xff1a; source setup ast2500-default 一、源码下载、配置以及编译 重要&#xff1a;请参阅confluence 详细步骤 二、代码使用方法 目前所有自定义修改的代码…

虚拟机添加显示屏

1、关闭虚拟机&#xff0c;虚拟机在为关机的情况下&#xff0c;虚拟机设置->显示器->监视器 都是灰色的&#xff0c;不能设置&#xff1b; 2、虚拟机设置->显示器->监视器 “监视器数量” 设置为2 “拉伸模式” 不要勾选 点确定 3、点击 查看->循环使用多个…

蜥蜴目标检测数据集VOC格式1400张

蜥蜴&#xff0c;一种爬行动物&#xff0c;以其独特的形态和习性&#xff0c;成为了人们关注的焦点。 蜥蜴的外观多样&#xff0c;体型大小不一。它们通常拥有长条的身体、四肢和尾巴&#xff0c;鳞片覆盖全身&#xff0c;这使得它们能够在各种环境中轻松移动。大多数蜥蜴拥有…

深度学习 | 多模态算法

AIGC也就是AI内容生成已经成为新一轮人工智能发展的热点和必然趋势&#xff0c;它使得大规模高质量的创作变得更加容易。 一 、InstructGPT模型 1、GPT系列回顾 chatGPT和InstructGPT都使用了指示学习和基于人工反馈的强化学习来指导模型的训练&#xff0c;不同点仅仅是在采集数…

计算机视觉技术-单发多框检测(SSD)

单发多框检测&#xff08;SSD&#xff09;&#xff08;Liu et al., 2016&#xff09;。 该模型简单、快速且被广泛使用。尽管这只是其中一种目标检测模型&#xff0c;但本节中的一些设计原则和实现细节也适用于其他模型。 下图描述了单发多框检测模型的设计。 此模型主要由基础…

GitHub项目推荐:IDE-3D

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

2024,清洁家电卷向“全、智、廉、拓”与“出海”

文 | 智能相对论 作者 | 佘凯文 岁末&#xff0c;又到了一年一度盘点全年、筹划未来的重要节点。在今年经济大环境整体趋向稳定的背景中&#xff0c;许多行业都交还算过得去的成绩单&#xff0c;清洁家电正是其中一员。 特别是在整体家电大环境依旧严峻的前提下&#xff0c;…

Leetcode算法系列| 11. 盛最多水的容器

目录 1.题目2.题解C# 解法一&#xff1a;暴力C# 解法二&#xff1a;双指针&#xff08;左指针大于右指针&#xff0c;left&#xff09;C# 解法三&#xff1a;双指针优化&#xff08;左指针小于等于最小高度&#xff0c;left&#xff09;Java 解法一&#xff1a;双指针Python3 解…

xshell设置终端类型为xterm-256color (解决oh-my-tmux颜色失真问题)

文章目录 问题描述解法效果检验 问题描述 在xshell远程连接服务器时&#xff0c;tmux色彩有问题&#xff08;tmux配置为Oh my tmux&#xff09;&#xff0c;如下&#xff1a; 这色彩明显是8位的色彩。 现在终端的标配就是类型为 xterm-256color&#xff0c;其支持256位的真彩…

Maven简介及环境搭建和基本使用(Java开发中的实用工具)

一、概述 Maven 是 Apache 软件基金会的一个开源项目,是一个优秀的项目构建工具,它 用来帮助开发者管理项目中的 jar,以及 jar 之间的依赖关系、完成项目的编译、 测试、打包和发布等工作。 Maven的相关概念 pom.xml文件&#xff1a;里面可以配置相关信息&#xff0c;指导ma…

第一课:Transformer

第一课&#xff1a;Transformer 文章目录 第一课&#xff1a;Transformer1、学习总结&#xff1a;什么是语言模型&#xff1f;大语言模型&#xff08;LLM&#xff09;技术演变史注意力机制Transformer结构课程ppt及代码地址 2、学习心得&#xff1a;3、经验分享&#xff1a;4、…

内联函数的作用

目的 主要为了提升程序运行速度。 分析 当程序调用一个函数时&#xff0c;程序暂停执行当前指令&#xff0c;跳到函数体处执行&#xff0c;在函数执行完后&#xff0c;返回原来的位置继续执行。如果该函数为内联函数&#xff0c;则不需跳&#xff0c;是因为该内联函数直接插…

Python开发GUI常用库PyQt6和PySide6介绍之四:开发示例

Python开发GUI常用库PyQt6和PySide6介绍之四&#xff1a;开发示例 Python开发GUI常用库PyQt6 和 PySide6 介绍系列&#xff0c;已发表的&#xff1a; 之一&#xff1a;简介与安装https://blog.csdn.net/cnds123/article/details/135069944 之二&#xff1a;设计师&#xff0…

python的初识(print+intput函数和变量的基本运用)

#主页传送&#xff1a;江南的江 #每日鸡汤&#xff1a;你要知是非以不辩为解脱&#xff0c;烦恼以忍辱为智慧&#xff0c;办事以尽力为有功&#xff0c;处人以真诚为品格。做人的方略是&#xff1a;把好自己的口&#xff0c;明了心中的事&#xff0c;干好手里的活&#xff0c;走…