前端常用代码整理— js,jquery篇(3)

news/2024/7/10 22:54:22 标签: 前端, javascript, jquery

目录

1.判断是否是json字符串

2.获取当前网址

3.将文本复制到剪贴板

4.获取一个月的天数

5.展平数组

6.要修改getRandomItem函数以返回数组中的随机两个元素,可以尝试以下代码


 

1.判断是否是json字符串
const isJson = str => {
	try {
			JSON.parse(str);
			return true;
	} catch (e) {
			return false;
	}
};
console.log(isJson('{"name":"小明","address":"苏州"}'));  //true
console.log(isJson('{"name":"小王",address:"南京"}'));   //false
2.获取当前网址
const currentURL = () => window.location.href;
currentURL()
3.将文本复制到剪贴板
const copyTextToClipboard = async (text) => {
			  await navigator.clipboard.writeText(text)
			}
			// 请注意,此函数是异步的,因为 writeText 函数返回一个 Promise。
			
			// 但是,如果您想支持 Internet Explorer 等旧版浏览器,则必须采用以下方法:此解决方案依赖于输入字段,而不是之前的基于 Promise 的解决方案。
			// HTML
			<input id="input" type="text" value="This is the text that gets copied">
			<button id="copy">Copy the text</button>
			// JavaScript
			const copy = () => {
			  const copyText = document.querySelector('#input')
			  copyText.select()
			  document.execCommand('copy')
			}
			document.querySelector('#copy').addEventListener('click', copy)
4.获取一个月的天数
const daysInMonth = (month, year) => new Date(year, month, 0).getDate()
daysInMonth(2, 2024)// 29
daysInMonth(12, 2022)// 31
5.展平数组
const flatten = (arr) => arr.reduce((a, b) => (Array.isArray(b) ? [...a, ...flatten(b)] : [...a, b]), [])
			flatten([[1, 2], [3, 4], [5, 6]])// [1, 2, 3, 4, 5, 6]
			flatten([["some", "text"], "and", ["some", "more"]])// ['some', 'text', 'and', 'some', 'more']
			但是还有一种更短的方法可以实现这一点。我们可以在数组上调用 flat 方法并获得相同的结果。但是,此功能尚不完全支持。尤其是在老版本的几个浏览器中,缺乏对这个功能的支持。
			[[1, 2], [3, 4], [5, 6]].flat()// [1, 2, 3, 4, 5, 6]
			[["some", "text"], "and", ["some", "more"]].flat()// ['some', 'text', 'and', 'some', 'more']
6.要修改getRandomItem函数以返回数组中的随机两个元素,可以尝试以下代码
const getRandomItems = (arr, count) => {
			    const shuffled = arr.slice().sort(() => 0.5 - Math.random());
			    return shuffled.slice(0, count);
			}
			console.log(getRandomItems([1, 7, 9, 3, 6], 2)); // [ 7, 9 ]
			console.log(getRandomItems([{ name: "Ted" }, { name: "Philip" }, { name: "Jack" }], 2)); // [ { name: 'Jack' }, { name: 'Philip' } ]
			console.log(getRandomItems([{ name: "Ted" }, 1, "Some text", 4, { name: "Jack" }], 2));

 


http://www.niftyadmin.cn/n/5464843.html

相关文章

【网站项目】课堂教学效果实时评价系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

谈谈Java内存模型(JMM)以及对volatile关键字的理解

Java面试题目录 注意Java内存模型JMM与JVM内存模型不是一个东西。 Java内存模型&#xff08;JMM&#xff09; Java内存模式是一种虚拟机规范&#xff0c;Java内存模型规定线程之间的共享变量必须存储在主内存中。每个线程都有自己的工作内存&#xff0c;线程的工作内存保存了…

上海大学通信829考研踩坑记录

​ 由于本人初试分不高&#xff0c;不敢随便分享经验&#xff0c;所以主要来为大家去讲解一下关于上海大学通信学院829学硕考研&#xff0c;我踩过的一些坑吧。鄙人本科比较摆烂&#xff0c;本科数学均分80、英语均分75、信号67、电路86。是一个典型的考研选手&#x1f622;&am…

Git、TortoiseGit、SVN、TortoiseSVN 的关系和区别

Git、TortoiseGit、SVN、TortoiseSVN 的关系和区别 &#xff08;二&#xff09;Git&#xff08;分布式版本控制系统&#xff09;:&#xff08;二&#xff09;SVN&#xff08;集中式版本控制系统&#xff09;&#xff08;三&#xff09;TortoiseGit一、下载安装 git二、安装过程…

前端代码规范-命名规范

命名规则 camelCase&#xff08;小驼峰式命名法 —— 首字母小写&#xff09;PascalCase&#xff08;大驼峰式命名法 —— 首字母大写&#xff09;kebab-case&#xff08;短横线连接式&#xff09;Snake&#xff08;下划线连接式&#xff09; 项目名称 项目名 全部采用小写方…

2024年网络安全运营体系建设方案

以下是部分WORD内容&#xff0c;请您参阅。如需下载完整WORD文件&#xff0c;请前往星球获取&#xff1a; 网络安全运营监控工作整体构想 工作目标及原则 工作目标 为进一步落实强化公司网络安全保障&#xff0c;有效支撑公司数字化转型战略&#xff0c;建立健全公司网省两级协…

基于Spring Boot的校园招聘平台设计与实现(附源码+数据库+万字文档+PPT)

基于Spring Boot的校园招聘平台 一、摘要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 毕业生信息招聘平台&#xff0c;主要的模块包括查看管理员&#xff1b;首页、个人中心、企业管理、空中宣…

数据结构 第二章(线性表)

写在前面&#xff1a; 本系列笔记主要以《数据结构&#xff08;C语言版&#xff09;》为参考&#xff0c;结合下方视频教程对数据结构的相关知识点进行梳理。所有代码块使用的都是C语言&#xff0c;如有错误欢迎指出。视频链接&#xff1a;第01周a--前言_哔哩哔哩_bilibili 一…