实用js片段

字符串排序

const arr=[{name:'ccc'},{name:'bbb'},{name:'ccc'}]
arr.sort((a,b)=>a.name.localeCompare(b.name))

从数组中过滤出虚假值

const arr=[1,2,'',undefined]
const arr1 = arr.filter(v=>v)  //[1,2]

删除重复值

const arr=[1,2,1,3]
const arr1 = [...new Set(arr)]   //[1,2,3]

创建计数器对象或映射

 let string = 'kapilalipak';const table = {};for (let char of string) {table[char] = table[char] + 1 || 1;}
// 输出{ k: 2, a: 3, p: 2, i: 2, l: 2 }
//或者
const countMap = new Map();for (let i = 0; i < string.length; i++) {if (countMap.has(string[i])) {countMap.set(string[i], countMap.get(string[i]) + 1);} else {countMap.set(string[i], 1);}}
// 输出
Map(5) {"k" => 2, "a" => 3, "p" => 2, "i" => 2, "l" => 2}

可选链

const user = {employee: {name: "Kapil"}
};
user.employee?.name;
// 输出: "Kapil"
user.employ?.name;
// 输出: undefined
user.employ.name
// 输出: VM21616:1 Uncaught TypeError: Cannot read property 'name' of undefined

打乱数组

const list = [1, 2, 3, 4, 5, 6, 7, 8, 9];
list.sort(() => {return Math.random() - 0.5;
});
// 输出
(9) [2, 5, 1, 6, 9, 8, 4, 3, 7]
// Call it again
(9) [4, 1, 7, 5, 3, 8, 2, 9, 6]

空合并算子

const foo = null ?? 'my school';
// 输出: "my school"const baz = 0 ?? 42;
// 输出: 0

Rest & Spread 运算符

function myFun(a,  b, ...manyMoreArgs) {return arguments.length;
}
myFun("one", "two", "three", "four", "five", "six");// 输出: 6
const parts = ['shoulders', 'knees']; 
const lyrics = ['head', ...parts, 'and', 'toes']; lyrics;
// 输出: 
(5) ["head", "shoulders", "knees", "and", "toes"]

默认参数

const search = (arr, low=0,high=arr.length-1) => {return high;
}
search([1,2,3,4,5]);// 输出: 4

将十进制转换为二进制或十六进制

const num = 10;num.toString(2);
// 输出: "1010"
num.toString(16);
// 输出: "a"
num.toString(8);
// 输出: "12"

使用解构赋值交换值

let a = 5;
let b = 8;
[a,b] = [b,a][a,b]
// 输出
(2) [8, 5]

Object属性转成属性数组

使用Object.entries(),Object.keys()和Object.values()
const obj = { a: 1, b: 2, c: 3 };Object.entries(obj);
// 输出
(3) [Array(2), Array(2), Array(2)]
0: (2) ["a", 1]
1: (2) ["b", 2]
2: (2) ["c", 3]
length: 3Object.keys(obj);
(3) ["a", "b", "c"]Object.values(obj);
(3) [1, 2, 3]

当有多个参数的时候需要获取event默认参数

function eventTest(a,b){var event = window.event || arguments.callee.caller.arguments[0]//target 就是这个对象target = event.srcElement||event.target,//这个对象的值targetValue = event.target.value;
}

清空对象的值(两种办法)

场景:表单填写,提交之后表单中的数据清空。

  • 第一种for in
let obj = {a:1,b:2};
for(let key in obj){obj[key]='';
}
  • 第二种处理对象之前提前存一条(需要深拷贝)
let obj1=JSON.parse(JSON.stringify(obj))
// 之后就push数据
obj=obj1

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

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

相关文章

基于Confluent+Flink的实时数据分析最佳实践

简介&#xff1a;在实际业务使用中&#xff0c;需要经常实时做一些数据分析&#xff0c;包括实时PV和UV展示&#xff0c;实时销售数据&#xff0c;实时店铺UV以及实时推荐系统等&#xff0c;基于此类需求&#xff0c;Confluent实时计算Flink版是一个高效的方案。 业务背景 在…

深度解读「无影云电脑远程办公解决方案」

简介&#xff1a;疫情常态化&#xff0c;企业如何应对「远程」带来的挑战&#xff1f; 疫情之下&#xff0c;很多企业选择远程办公来保证业务的正常运营&#xff0c;而远程办公解决方案需要具备哪些技术能力来应对“远程”带来的挑战呢&#xff1f; 一&#xff0c;弹性伸缩能…

疯了?黑客公开“25美元入侵星链”法,SpaceX给他钱,还诚邀大家一起来“黑”?...

整理 | 郑丽媛出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;近日&#xff0c;国外论坛 Reddit 上的一则热帖给人看“懵”了&#xff1a;SpaceX 诚邀大家来入侵自家的星链&#xff08;Starlink&#xff09;&#xff0c;成功者有赏。这令人不由感慨&#xff1a;居然…

车脉科技:业内首创“车企体验式营销”

随着新能源汽车不断得到人们的广泛关注&#xff0c;车企在新车型、新市场、新认知下如何提升销量以及用户如何选购一款合心意的智能电动车成为新能源智能时代的汽车营销难题。 车脉科技创业初衷 车脉科技的创始人孙泽锋说道&#xff1a;“创立车脉的初衷&#xff0c;我们一端想…

专访香侬科技:致力于让世界听到中文NLP的声音

像所有的创业者一样&#xff0c;香侬科技的初创团队胸怀梦想&#xff0c;期待有一天当人们提起香侬的时候&#xff0c;除了“信息论之父”&#xff0c;还能想起来有一家用技术在链接大千世界的科技公司——香侬科技。 新生的香侬科技选择“长在云上” 香侬科技的CTO王思宽说起…

驭数有道,天翼云数据库 TeleDB 全新升级

8月16日&#xff0c;以“红云天翼 安全普惠”为主题的天翼云TeleDB系列产品升级发布会在线上顺利举办。此次发布的天翼云自主研发云原生数据库进行了全新升级&#xff0c;推出一站式HTAP融合数据库&#xff0c;以及TeleDB数据库容灾双活方案&#xff0c;同时也展示了TeleDB数据…

如何构建一个流量无损的在线应用架构 | 专题尾篇

简介&#xff1a;我们将这些年在每一个环节中的相应解决方案&#xff0c;以产品化的方式沉淀到企业级分布式应用服务&#xff08;EDAS&#xff09;中。EDAS 致力于解决在线应用的全流程流量无损&#xff0c;经过 6 年的精细打磨&#xff0c;已经在流量接入与流量服务两个关键位…

音乐播放器 audio

音乐播放器 audio 属性 src 音频的播放地址controls 播放控件autoplay 自动播放loop 循环播放muted 当设置修改属性后&#xff0c;音频输出被静音 APi play 播放pause 暂停currentTime 设置或返回当前音频的长度durations 返回音频长度src 设置返回音频来源volume 设置或获…

云原生微服务技术趋势解读

简介&#xff1a;随着微服务技术门槛大幅下降&#xff0c;随着企业数字化升级步伐加速&#xff0c;随着云计算的迅速发展&#xff0c;微服务将无处不在&#xff1b;随着行业成熟度逐步提升&#xff0c;随着开源和标准推进&#xff0c;微服务的标准逐步形成&#xff0c;标准形成…

中国信通院魏博锴:云原生混部标准解读

嘉宾 | 魏博锴出品 | CSDN云原生2022年7月28日&#xff0c;中国信通院、腾讯云、FinOps产业标准工作组联合发起的《原动力x云原生正发声 降本增效大讲堂》系列直播活动第4讲如期举行&#xff0c;中国信通院云大所云计算部云原生研究员魏博锴解读了云原生混部标准。本文整理自魏…

从平凡到非凡 阿里云李克的技术进阶之路

简介&#xff1a;人物简介&#xff1a;李克 阿里云边缘云计算领域技术负责人 2009年硕士毕业加入阿里至今&#xff0c;一直从事CDN及边缘云领域的技术研发工作&#xff0c;在CDN、边缘计算等方向上有丰富的行业经验&#xff0c;全程参与了阿里云CDN商业化转型&#xff0c;边缘云…

详解Object.defineProperty

Object.defineProperty 3个参数 obj: 可以理解为目标对象。prop: 目标对象的属性名。descriptor: 对属性的描述。 descriptor可分为数据属性和访问器属性两类 //4个数据描述符value&#xff0c;configurable&#xff0c;enumerable&#xff0c;writablelet obj {};Object.de…

一文搞懂redis

简介&#xff1a;NoSQL泛指非关系型数据库&#xff0c;随着web2.0互联网的诞生&#xff0c;传统的关系型数据库很难对付web2.0大数据时代&#xff01;尤其是超大规模的高并发的社区&#xff0c;暴露出来很多难以克服的问题&#xff0c;NoSQL在当今大数据环境下发展的十分迅速&a…

热搜!华为 30 岁以下员工仅占 28%,网友:35 岁危机呢?

整理 | 郑丽媛出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;一直以来&#xff0c;程序员的“35 岁”都是圈内的热议话题&#xff1a;35 岁是程序员的职业终结点、程序员到 35 岁就废了、超过 35 岁的程序员容易被裁……久而久之&#xff0c;35 岁逐渐变成了一个很…

阿里云发布业界首本《云计算公网质量白皮书》

随着互联网的发展&#xff0c;网络已经融入了整个社会发展的进程&#xff0c;如同血液贯通人类文明的五脏六腑。一旦网络出现故障&#xff0c;将给社会的政治、经济、文化造成重大损失。 2021年10月4日&#xff0c;Facebook在地球上”消失”了6小时&#xff0c;市值跌掉3000亿…

初识vue3

对vue3的理解 2020年9月发布的正式版vue3支持大多数的Vue2的特性Vue中设计了一套强大的组合APi代替了Vue2中的option API&#xff0c;复用性更强了更好的支持TS最主要&#xff1a;Vue3中使用了Proxy配合Reflect代替了Vue2中Object.defineProperty()方法实现数据的响应式&#…

选轻量应用服务器or云服务器ECS?一图帮你彻底区分

简介&#xff1a;轻量应用服务器适合轻量级且访问量低的应用场景&#xff0c;更适合个人开发者、对新手小白更友好&#xff1b;而云服务器ECS可覆盖全业务场景&#xff08;如大数据分析&#xff0c;深度学习等&#xff09;&#xff0c;要求用户有一定的开发技术能力。 本文首发…

js实现shallowReactive和reactive

// shallowReactive(浅的监视&#xff0c;浅的劫持&#xff0c;浅的响应式数据)与reactive&#xff08;深的&#xff09;// 定义一个reactiveHandler处理对象 let reactiveHandler {// 获取属性值get(target, prop) {// 这里的result返回1const result Reflect.get(target, p…

宜搭小技巧|一招摆脱纸质表单,数据收集更便捷

简介&#xff1a;开启「应用公开访问」&#xff0c;组织外成员也可提交数据。 许多公司在前台都会准备一个访客登记表&#xff0c;供来访者填写。但如果来访者数量较多&#xff0c;就会出现这样的问题…… 提供纸质表单供访客填写信息&#xff0c;使用起来繁琐且费时&#xff…