当前位置: 首页 > news >正文

运算符展开、函数,对象,数组,字符串变化 集合

... 展开运算符 用于函数实参或者赋值号右边

 console.log(...[1, 2, 3]) // 1,2,3console.log(Math.max(...[1, 2, 3]))//3   console.log(Math.max.apply(null, [1, 2, 3]))//3const o = { a: 1, b: 2 }const obj = { ...o, c: 3 }console.log(obj)//Object

... 剩余运算符 用于赋值号左边或函数形参

 const [a, ...args] = [1, 2, 3, 4]console.log(args) // [2,3,4]const fn = (...args) => {console.log(args)let sum = 0args.forEach((item) => {sum += item})return sum}console.log(fn(1))//1console.log(fn(1, 2))//3console.log(fn(1, 2, 3))//6

 函数参数默认值

function fn(a = 0, b = 0) {return a + b}console.log(fn())//0console.log(fn.name)//fn

对象变化

当对象的属性名和值的变量名或常量名一样 可以省略冒号+变量名

const username = 'admin'const pwd = '123456'const obj = {username, // username:usernamepwd,say() {console.log('say')//say},say1: () => {},}console.log(obj)//objectobj.say()const o = Object.create(obj) // o.__proto__ = objo.a = 100console.log(o.username)//adminconsole.log(NaN === NaN)//falseconsole.log(Object.is(NaN, NaN)) // trueconsole.log(Object.is({ a: 1 }, { a: 1 }))//falseconst arr = [1, 2, 3]console.log(arr.toString())//1,2,3   console.log(Object.prototype.toString.call(arr))//[object Array]

hasOwnProperty() 判断某个属性是否是自身

 console.log(o.hasOwnProperty('username')) // falseconsole.log(o.hasOwnProperty('a')) // true

数组扁平化

实现方式一 数组的flat方法const arr1 = [0, 1, 2, [3, 4, [9, 10]], [7, 8]]console.log(arr1.keys()) // 返回const iterator = arr1.keys()for (const key of iterator) {console.log(key)}console.log(Object.keys(arr1))//['0', '1', '2', '3', '4']
实现方式二 递归
function flat(arr, newArr = []) {arr.forEach((item) => {if (Array.isArray(item)) {flat(item, newArr)} else {newArr.push(item)}})return newArr}
console.log(flat(arr1))//[0, 1, 2, 3, 4, 9, 10, 7, 8]
console.log('x'.repeat(3))//xxxconst paragraph ='The quick brown fox jumps over the lazy dog. It barked.'const regex = /([A-Z])h/const found = paragraph.match(regex)console.log(found)

集合-Set集合不能重复

  const set = new Set()

往集合添加元素

set.add('html')set.add('css')set.add('js')set.add('js')

集合遍历

set.forEach((item) => {console.log(item)})

 集合长度

 console.log(set.size)

判断集合是否含有某个元素

 console.log(set.has('js'))console.log(Array.from(set)) //['html', 'css', 'js'] console.log([...set]) //['html', 'css', 'js']  set.delete('html')console.log(set)//{'css', 'js'}set.clear()console.log(set.size)//0

利用set集合实现数组去重       对原数组进行遍历,判断每个元素不在新数组中,加到新数组中

const s = [...new Set([1, 2, 3, 4, 3, 2])] 
console.log(s)//[1, 2, 3, 4]
const arr = [1, 2, 3, 4, 3, 2]const newArr = []arr.forEach((item) => {if (newArr.indexOf(item) === -1) {newArr.push(item)}})console.log(newArr)// [1, 2, 3, 4]

Map存的是键值对

const map = new Map()map.set('uname', 'zs')map.set('address', { province: '浙江省', city: '杭州' })const o = { a: 1 }map.set(o, { x: 100 })map.delete('uname')console.log(map.get('address'))//objectconsole.log(map.size)//2console.log(map.has('uname'))//false

遍历

map.forEach((v, k) => {console.log(v, k)})

 WeakMap 它的键只能是对象,一个对象作为 WeakMap 的键存在,不会阻止该对象被垃圾回收性能更好

 const weakMap = new WeakMap()weakMap.set(o, 10)console.log(weakMap)

深拷贝方式

const o = {a: 1,b: [2, 3],c: {x: 10,y: 20,},}o.o1 = o // {a,b,c,o1:{a,b,c,o1:}}function deepClone(obj) {if (obj == null) return objif (obj instanceof Date) return new Date(obj)if (typeof obj !== 'object') return objconst newObj = new obj.constructor()for (const key in obj) {newObj[key] = deepClone(obj[key])}return newObj}console.log(deepClone(o))</script>

相关文章:

运算符展开、函数,对象,数组,字符串变化 集合

... 展开运算符 用于函数实参或者赋值号右边 console.log(...[1, 2, 3]) // 1,2,3console.log(Math.max(...[1, 2, 3]))//3 console.log(Math.max.apply(null, [1, 2, 3]))//3const o { a: 1, b: 2 }const obj { ...o, c: 3 }console.log(obj)//Object ... 剩余运算符 用于…...

NI自动化测试系统用电必备攻略,电源规划大揭秘

就像使用电脑之前需接通电源一样&#xff0c;自动化测试系统的电源选择也是首当其冲的问题&#xff0c;只不是这个问题更复杂。 比如&#xff0c;应考虑地理位置因素&#xff0c;因为不同国家或地区的公共电网所提供的线路功率有所不同。在电源布局和设备选型方面&#xff0c;有…...

ky10 server arm 在线编译安装openssl3.1.4

在线编译脚本 #!/bin/shOPENSSLVER3.1.4OPENSSL_Vopenssl versionecho "当前OpenSSL 版本 ${OPENSSL_V}" #------------------------------------------------ #wget https://www.openssl.org/source/openssl-3.1.4.tar.gzecho "安装OpenSSL${OPENSSLVER}...&q…...

外网IP和内网IP的区别

首先得先知道什么是ip地址&#xff0c;它就是唯一标识连接网络的设备的&#xff0c;即IP地址充当了设备在网络中的“住址”&#xff0c;使得设备能够相互通信和交换数据。 我们常听开发人员说外网内网&#xff0c;那么它们有什么区别呢&#xff1f; 外网可以理解为互联网&…...

Jquery动画特效

1&#xff0c;Jquery提供的特效方法 2&#xff0c;实例代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><…...

Tableau连接到mysql数据库,配置驱动

Tableau想要连接mysql数据库进行数据的可视化&#xff0c;但是没有ODBC驱动&#xff0c;看了几篇文章写的&#xff0c;不是很清楚&#xff0c;顺便写下自己的思路。 1、下载mysql对应的ODBC驱动 首先要知道自己mysql的版本&#xff0c;然后下载对应的ODBC驱动。 MySQL :: Dow…...

HuggingFace学习笔记--AutoModel的使用

1--AutoModel的使用 官方文档 AutoModel 用于加载模型&#xff1b; 1-1--简单Demo 测试代码&#xff1a; from transformers import AutoTokenizer, AutoModelif __name__ "__main__":checkpoint "distilbert-base-uncased-finetuned-sst-2-english"t…...

Kafka常见面试问题

1、Kafka分区设计及主副本如何同步 Apache Kafka是一种分布式流处理平台&#xff0c;它使用分布式复制协议来实现高可用性和容错性。在Kafka中&#xff0c;每个主题&#xff08;topic&#xff09;都有一个或多个分区&#xff08;partition&#xff09;&#xff0c;每个分区都有…...

学习知识回顾随笔(远程连接MySQL|远程访问Django|HTTP协议|Web框架)

文章目录 如何远程连接MySQL数据库1.创建用户来运行&#xff0c;此用户从任何主机连接到mysql数据库2.使用IP地址来访问MySQL数据库 如何远程访问Django项目Web应用什么是Web应用应用程序的两种模式Web应用程序的优缺点 HTTP协议&#xff08;超文本传输协议&#xff09;简介HTT…...

一、TIDB基础

官方文档&#xff1a;TiDB 产品文档 | PingCAP 文档中心 TIDB整个逻辑架构跟MYSQL类似&#xff0c;如下&#xff1a; TIDB集群&#xff1a;相当于MYSQL的数据库服务器&#xff0c;区别是MYSQL数据库服务器为单进程的&#xff0c;TIDB集群为分布式多进程的。 数据库&#xff…...

【微软技术栈】使用新的C#功能减少内存分配

本文内容 通过引用传递和返回引用安全上下文安全的上下文和 ref 结构统一内存类型通过参考安全提高性能 本节中介绍的技术可提高应用于代码中的热路径时的性能。热路径是代码库中在正常操作中经常重复执行的部分。将这些技术应用于不经常执行的代码将产生最小的影响。在进行任何…...

Linux shell编程学习笔记29:shell自带的 脚本调试 选项

Linux shell脚本的调试方法比较多&#xff0c;上次我们探讨和测试了shell内建命令set所提供的一些调试选项&#xff0c;其实 shell 本身也提供了一些调试选项。我们以bash为例来看看。 1 bash 的命令行帮助信息&#xff08;bash --help&#xff09; purleEndurer csdn ~ $ ba…...

分享几个可以免费使用GPT的网站

ChatGPT这个是国产的&#xff0c;里面可以使用3.5和4.0&#xff0c;免费用户每日都有各自的使用次数&#xff0c;反应迅速。文言一心国内百度的chart8新用户200次&#xff0c;但只能用3.5&#xff0c;响应速度有点慢 各有优缺点&#xff0c;大家看个人情况使用&#xff0c;个人…...

一. BEV感知算法介绍

目录 前言1. BEV感知算法的概念2. BEV感知算法数据形式3. BEV开源数据集介绍3.1 KITTI数据集3.2 nuScenes数据集 4. BEV感知方法分类4.1 纯点云方案4.2 纯视觉方案4.3 多模态方案 5. BEV感知算法的优劣6. BEV感知算法的应用介绍7. 课程框架介绍与配置总结下载链接参考 前言 自动…...

Scala如何写一个通用的游戏数据爬虫程序

以前想要获取一些网站数据的时候&#xff0c;都是通过人工手动复制粘贴&#xff0c;这样的效率及其低下。数据少无所谓&#xff0c;如果需要采集大量数据&#xff0c;手动就显得乏力了。半夜睡不着&#xff0c;爬起来写一段有关游戏商品数据的爬虫通用模板&#xff0c;希望能帮…...

前端命名规范总结

布局类&#xff1a;header, footer, container, main, content, aside, page, section 包裹类&#xff1a;wrap, inner 区块类&#xff1a;region, block, box 结构类&#xff1a;hd, bd, ft, top, bottom, left, right, middle, col, row, grid, span 列表类&#xff1a;list,…...

Vue学习笔记-搭建Vuex

1.概念 在Vue实现集中式状态&#xff08;数据&#xff09;管理的一个插件&#xff0c;对Vue中多个组件的共享状态进行集中式的管理&#xff08;读/写&#xff09;&#xff0c;也是一种组件间的通信方式&#xff0c;适用于任意组件间的通信 2.使用场景 多个组件需要共享数据时…...

Ajax技

Ajax的特点 异步提交&#xff1a;Ajax采用异步通信方式&#xff0c;能够在页面无需重新加载的情况下向服务器发送请求并接收响应数据&#xff0c;提升了用户体验。无需插件&#xff1a;Ajax是基于标准浏览器的Javascript和XMLHttpRequest对象实现的&#xff0c;无需安装插件或…...

Co-DETR:DETRs与协同混合分配训练论文学习笔记

论文地址&#xff1a;https://arxiv.org/pdf/2211.12860.pdf 代码地址&#xff1a; GitHub - Sense-X/Co-DETR: [ICCV 2023] DETRs with Collaborative Hybrid Assignments Training 摘要 作者提出了一种新的协同混合任务训练方案&#xff0c;即Co-DETR&#xff0c;以从多种标…...

ELk部署,保姆级教学超详细!!!

Elk&#xff08;Elasticsearch, Logstash, Kibana&#xff09;是一套日志收集、存储和展示方案&#xff0c;是由Elastic公司开发的开源软件组合。 Elasticsearch&#xff1a;是一个分布式的搜索和分析引擎。它能够处理大量的数据&#xff0c;并提供快速、准确的搜索结果&#x…...

保姆级 uPyPi 教程|从 到 :MicroPython 驱动包一键安装 + 分享全攻略诮

这个代码的核心功能是&#xff1a;基于输入词的长度动态选择反义词示例&#xff0c;并调用大模型生成反义词&#xff0c;体现了 “动态少样本提示&#xff08;Dynamic Few-Shot Prompting&#xff09;” 与 “上下文长度感知的示例选择” 的能力。 from langchain.prompts impo…...

如何优化SQL注入检测性能_通过预编译缓存提升效率

预编译语句能减少SQL注入检测开销&#xff0c;因其将参数与SQL模板分离&#xff0c;使检测只需针对缓存的带占位符模板执行一次&#xff0c;而非每次请求都扫描完整SQL字符串。为什么预编译语句能减少SQL注入检测开销因为真正的注入检测&#xff08;如正则匹配、语法树分析&…...

手把手教你调用MinerU API:实现多模态文档理解与自动化信息提取

手把手教你调用MinerU API&#xff1a;实现多模态文档理解与自动化信息提取 1. 引言 1.1 文档智能化的时代需求 在日常工作和科研中&#xff0c;我们经常需要处理大量非结构化文档——PDF报告、扫描合同、学术论文、财务报表等。传统的人工处理方式不仅效率低下&#xff0c;…...

Java开发中Lombok插件失效的常见问题与解决方案

1. 为什么你的Lombok突然罢工了&#xff1f; 最近在升级IDEA后&#xff0c;突然发现项目里到处都是"找不到符号"的错误提示&#xff0c;特别是那些用了Slf4j注解的地方&#xff0c;log变量全都报红。这种情况我遇到过不止一次&#xff0c;每次都能让开发效率直接归零…...

如何快速掌握FanControl:Windows风扇智能控制的终极免费方案

如何快速掌握FanControl&#xff1a;Windows风扇智能控制的终极免费方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trend…...

前端性能排查实战:Chrome Network面板里Timing那7个阶段到底怎么看?

Chrome Network面板Timing分析实战&#xff1a;从指标到性能优化 页面加载缓慢时&#xff0c;Chrome DevTools的Network面板中的Timing指标就像犯罪现场的指纹&#xff0c;每个数字背后都隐藏着性能问题的真相。但面对Queueing、Stalled、TTFB这些专业术语&#xff0c;很多开发…...

从聊天到办公全能:Kimi AI的隐藏功能大揭秘(含Prompt优化技巧)

从聊天到办公全能&#xff1a;Kimi AI的隐藏功能大揭秘&#xff08;含Prompt优化技巧&#xff09; 在AI工具井喷式发展的今天&#xff0c;Kimi AI凭借其独特的多场景适应能力&#xff0c;正在重新定义"智能助手"的边界。这款最初以聊天功能进入大众视野的工具&#x…...

微信好友关系智能检测:高效管理你的社交网络

微信好友关系智能检测&#xff1a;高效管理你的社交网络 【免费下载链接】WechatRealFriends 微信好友关系一键检测&#xff0c;基于微信ipad协议&#xff0c;看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealFriends 在数字社…...

MiniCPM-o-4.5-nvidia-FlagOS参数详解:bfloat16精度选择依据与推理延迟权衡分析

MiniCPM-o-4.5-nvidia-FlagOS参数详解&#xff1a;bfloat16精度选择依据与推理延迟权衡分析 1. 引言 当你第一次部署一个像MiniCPM-o-4.5这样的大模型时&#xff0c;面对配置选项里那个“bfloat16”精度选项&#xff0c;是不是有点拿不准主意&#xff1f;选它吧&#xff0c;担…...

最后的轻量化机会窗口:2024Q3起CUDA 12.4+Triton 2.3将强制启用新梯度截断协议,旧蒸馏Pipeline即将失效

第一章&#xff1a;大模型工程化中的模型蒸馏技术 2026奇点智能技术大会(https://ml-summit.org) 模型蒸馏是将大型教师模型&#xff08;Teacher Model&#xff09;的知识高效迁移至轻量级学生模型&#xff08;Student Model&#xff09;的关键工程手段&#xff0c;其核心目标…...